Jonathan Albrecht ddaa5b3bfb
[SystemZ] Add header guard macros to vecintrin.h (#129170)
Add header guard macros to clang/lib/Headers/vecintrin.h. Found while
compiling the latest numpy with clang 19 on s390x which ends up
including vecintrin.h twice. The gcc version of this file has header
guards so numpy compiles fine with gcc.

Signed-off-by: Jonathan Albrecht <jonathan.albrecht@ibm.com>
2025-02-28 10:16:19 +01:00

12869 lines
419 KiB
C

/*===---- vecintrin.h - Vector intrinsics ----------------------------------===
*
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
* See https://llvm.org/LICENSE.txt for license information.
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
*
*===-----------------------------------------------------------------------===
*/
#ifndef _VECINTRIN_H
#define _VECINTRIN_H
#if defined(__s390x__) && defined(__VEC__)
#define __ATTRS_ai __attribute__((__always_inline__))
#define __ATTRS_o __attribute__((__overloadable__))
#define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
#define __constant(PARM) \
__attribute__((__enable_if__ ((PARM) == (PARM), \
"argument must be a constant integer")))
#define __constant_range(PARM, LOW, HIGH) \
__attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH), \
"argument must be a constant integer from " #LOW " to " #HIGH)))
#define __constant_pow2_range(PARM, LOW, HIGH) \
__attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH) && \
((PARM) & ((PARM) - 1)) == 0, \
"argument must be a constant power of 2 from " #LOW " to " #HIGH)))
/*-- __lcbb -----------------------------------------------------------------*/
extern __ATTRS_o unsigned int
__lcbb(const void *__ptr, unsigned short __len)
__constant_pow2_range(__len, 64, 4096);
#define __lcbb(X, Y) ((__typeof__((__lcbb)((X), (Y)))) \
__builtin_s390_lcbb((X), __builtin_constant_p((Y))? \
((Y) == 64 ? 0 : \
(Y) == 128 ? 1 : \
(Y) == 256 ? 2 : \
(Y) == 512 ? 3 : \
(Y) == 1024 ? 4 : \
(Y) == 2048 ? 5 : \
(Y) == 4096 ? 6 : 0) : 0))
/*-- vec_extract ------------------------------------------------------------*/
static inline __ATTRS_o_ai signed char
vec_extract(__vector signed char __vec, int __index) {
return __vec[__index & 15];
}
static inline __ATTRS_o_ai unsigned char
vec_extract(__vector __bool char __vec, int __index) {
return __vec[__index & 15];
}
static inline __ATTRS_o_ai unsigned char
vec_extract(__vector unsigned char __vec, int __index) {
return __vec[__index & 15];
}
static inline __ATTRS_o_ai signed short
vec_extract(__vector signed short __vec, int __index) {
return __vec[__index & 7];
}
static inline __ATTRS_o_ai unsigned short
vec_extract(__vector __bool short __vec, int __index) {
return __vec[__index & 7];
}
static inline __ATTRS_o_ai unsigned short
vec_extract(__vector unsigned short __vec, int __index) {
return __vec[__index & 7];
}
static inline __ATTRS_o_ai signed int
vec_extract(__vector signed int __vec, int __index) {
return __vec[__index & 3];
}
static inline __ATTRS_o_ai unsigned int
vec_extract(__vector __bool int __vec, int __index) {
return __vec[__index & 3];
}
static inline __ATTRS_o_ai unsigned int
vec_extract(__vector unsigned int __vec, int __index) {
return __vec[__index & 3];
}
static inline __ATTRS_o_ai signed long long
vec_extract(__vector signed long long __vec, int __index) {
return __vec[__index & 1];
}
static inline __ATTRS_o_ai unsigned long long
vec_extract(__vector __bool long long __vec, int __index) {
return __vec[__index & 1];
}
static inline __ATTRS_o_ai unsigned long long
vec_extract(__vector unsigned long long __vec, int __index) {
return __vec[__index & 1];
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai float
vec_extract(__vector float __vec, int __index) {
return __vec[__index & 3];
}
#endif
static inline __ATTRS_o_ai double
vec_extract(__vector double __vec, int __index) {
return __vec[__index & 1];
}
/*-- vec_insert -------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_insert(signed char __scalar, __vector signed char __vec, int __index) {
__vec[__index & 15] = __scalar;
return __vec;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_insert(unsigned char __scalar, __vector __bool char __vec, int __index) {
__vector unsigned char __newvec = (__vector unsigned char)__vec;
__newvec[__index & 15] = (unsigned char)__scalar;
return __newvec;
}
static inline __ATTRS_o_ai __vector unsigned char
vec_insert(unsigned char __scalar, __vector unsigned char __vec, int __index) {
__vec[__index & 15] = __scalar;
return __vec;
}
static inline __ATTRS_o_ai __vector signed short
vec_insert(signed short __scalar, __vector signed short __vec, int __index) {
__vec[__index & 7] = __scalar;
return __vec;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_insert(unsigned short __scalar, __vector __bool short __vec,
int __index) {
__vector unsigned short __newvec = (__vector unsigned short)__vec;
__newvec[__index & 7] = (unsigned short)__scalar;
return __newvec;
}
static inline __ATTRS_o_ai __vector unsigned short
vec_insert(unsigned short __scalar, __vector unsigned short __vec,
int __index) {
__vec[__index & 7] = __scalar;
return __vec;
}
static inline __ATTRS_o_ai __vector signed int
vec_insert(signed int __scalar, __vector signed int __vec, int __index) {
__vec[__index & 3] = __scalar;
return __vec;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_insert(unsigned int __scalar, __vector __bool int __vec, int __index) {
__vector unsigned int __newvec = (__vector unsigned int)__vec;
__newvec[__index & 3] = __scalar;
return __newvec;
}
static inline __ATTRS_o_ai __vector unsigned int
vec_insert(unsigned int __scalar, __vector unsigned int __vec, int __index) {
__vec[__index & 3] = __scalar;
return __vec;
}
static inline __ATTRS_o_ai __vector signed long long
vec_insert(signed long long __scalar, __vector signed long long __vec,
int __index) {
__vec[__index & 1] = __scalar;
return __vec;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_insert(unsigned long long __scalar, __vector __bool long long __vec,
int __index) {
__vector unsigned long long __newvec = (__vector unsigned long long)__vec;
__newvec[__index & 1] = __scalar;
return __newvec;
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_insert(unsigned long long __scalar, __vector unsigned long long __vec,
int __index) {
__vec[__index & 1] = __scalar;
return __vec;
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_insert(float __scalar, __vector float __vec, int __index) {
__vec[__index & 1] = __scalar;
return __vec;
}
#endif
static inline __ATTRS_o_ai __vector double
vec_insert(double __scalar, __vector double __vec, int __index) {
__vec[__index & 1] = __scalar;
return __vec;
}
/*-- vec_promote ------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_promote(signed char __scalar, int __index) {
const __vector signed char __zero = (__vector signed char)0;
__vector signed char __vec = __builtin_shufflevector(__zero, __zero,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
__vec[__index & 15] = __scalar;
return __vec;
}
static inline __ATTRS_o_ai __vector unsigned char
vec_promote(unsigned char __scalar, int __index) {
const __vector unsigned char __zero = (__vector unsigned char)0;
__vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
__vec[__index & 15] = __scalar;
return __vec;
}
static inline __ATTRS_o_ai __vector signed short
vec_promote(signed short __scalar, int __index) {
const __vector signed short __zero = (__vector signed short)0;
__vector signed short __vec = __builtin_shufflevector(__zero, __zero,
-1, -1, -1, -1, -1, -1, -1, -1);
__vec[__index & 7] = __scalar;
return __vec;
}
static inline __ATTRS_o_ai __vector unsigned short
vec_promote(unsigned short __scalar, int __index) {
const __vector unsigned short __zero = (__vector unsigned short)0;
__vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,
-1, -1, -1, -1, -1, -1, -1, -1);
__vec[__index & 7] = __scalar;
return __vec;
}
static inline __ATTRS_o_ai __vector signed int
vec_promote(signed int __scalar, int __index) {
const __vector signed int __zero = (__vector signed int)0;
__vector signed int __vec = __builtin_shufflevector(__zero, __zero,
-1, -1, -1, -1);
__vec[__index & 3] = __scalar;
return __vec;
}
static inline __ATTRS_o_ai __vector unsigned int
vec_promote(unsigned int __scalar, int __index) {
const __vector unsigned int __zero = (__vector unsigned int)0;
__vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,
-1, -1, -1, -1);
__vec[__index & 3] = __scalar;
return __vec;
}
static inline __ATTRS_o_ai __vector signed long long
vec_promote(signed long long __scalar, int __index) {
const __vector signed long long __zero = (__vector signed long long)0;
__vector signed long long __vec = __builtin_shufflevector(__zero, __zero,
-1, -1);
__vec[__index & 1] = __scalar;
return __vec;
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_promote(unsigned long long __scalar, int __index) {
const __vector unsigned long long __zero = (__vector unsigned long long)0;
__vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,
-1, -1);
__vec[__index & 1] = __scalar;
return __vec;
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_promote(float __scalar, int __index) {
const __vector float __zero = (__vector float)0.0f;
__vector float __vec = __builtin_shufflevector(__zero, __zero,
-1, -1, -1, -1);
__vec[__index & 3] = __scalar;
return __vec;
}
#endif
static inline __ATTRS_o_ai __vector double
vec_promote(double __scalar, int __index) {
const __vector double __zero = (__vector double)0.0;
__vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);
__vec[__index & 1] = __scalar;
return __vec;
}
/*-- vec_insert_and_zero ----------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_insert_and_zero(const signed char *__ptr) {
__vector signed char __vec = (__vector signed char)0;
__vec[7] = *__ptr;
return __vec;
}
static inline __ATTRS_o_ai __vector unsigned char
vec_insert_and_zero(const unsigned char *__ptr) {
__vector unsigned char __vec = (__vector unsigned char)0;
__vec[7] = *__ptr;
return __vec;
}
static inline __ATTRS_o_ai __vector signed short
vec_insert_and_zero(const signed short *__ptr) {
__vector signed short __vec = (__vector signed short)0;
__vec[3] = *__ptr;
return __vec;
}
static inline __ATTRS_o_ai __vector unsigned short
vec_insert_and_zero(const unsigned short *__ptr) {
__vector unsigned short __vec = (__vector unsigned short)0;
__vec[3] = *__ptr;
return __vec;
}
static inline __ATTRS_o_ai __vector signed int
vec_insert_and_zero(const signed int *__ptr) {
__vector signed int __vec = (__vector signed int)0;
__vec[1] = *__ptr;
return __vec;
}
static inline __ATTRS_o_ai __vector unsigned int
vec_insert_and_zero(const unsigned int *__ptr) {
__vector unsigned int __vec = (__vector unsigned int)0;
__vec[1] = *__ptr;
return __vec;
}
static inline __ATTRS_o_ai __vector signed long long
vec_insert_and_zero(const signed long long *__ptr) {
__vector signed long long __vec = (__vector signed long long)0;
__vec[0] = *__ptr;
return __vec;
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_insert_and_zero(const unsigned long long *__ptr) {
__vector unsigned long long __vec = (__vector unsigned long long)0;
__vec[0] = *__ptr;
return __vec;
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_insert_and_zero(const float *__ptr) {
__vector float __vec = (__vector float)0.0f;
__vec[1] = *__ptr;
return __vec;
}
#endif
static inline __ATTRS_o_ai __vector double
vec_insert_and_zero(const double *__ptr) {
__vector double __vec = (__vector double)0.0;
__vec[0] = *__ptr;
return __vec;
}
/*-- vec_perm ---------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_perm(__vector signed char __a, __vector signed char __b,
__vector unsigned char __c) {
return (__vector signed char)__builtin_s390_vperm(
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_perm(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c) {
return (__vector unsigned char)__builtin_s390_vperm(
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
}
static inline __ATTRS_o_ai __vector __bool char
vec_perm(__vector __bool char __a, __vector __bool char __b,
__vector unsigned char __c) {
return (__vector __bool char)__builtin_s390_vperm(
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
}
static inline __ATTRS_o_ai __vector signed short
vec_perm(__vector signed short __a, __vector signed short __b,
__vector unsigned char __c) {
return (__vector signed short)__builtin_s390_vperm(
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_perm(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned char __c) {
return (__vector unsigned short)__builtin_s390_vperm(
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
}
static inline __ATTRS_o_ai __vector __bool short
vec_perm(__vector __bool short __a, __vector __bool short __b,
__vector unsigned char __c) {
return (__vector __bool short)__builtin_s390_vperm(
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
}
static inline __ATTRS_o_ai __vector signed int
vec_perm(__vector signed int __a, __vector signed int __b,
__vector unsigned char __c) {
return (__vector signed int)__builtin_s390_vperm(
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_perm(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned char __c) {
return (__vector unsigned int)__builtin_s390_vperm(
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
}
static inline __ATTRS_o_ai __vector __bool int
vec_perm(__vector __bool int __a, __vector __bool int __b,
__vector unsigned char __c) {
return (__vector __bool int)__builtin_s390_vperm(
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
}
static inline __ATTRS_o_ai __vector signed long long
vec_perm(__vector signed long long __a, __vector signed long long __b,
__vector unsigned char __c) {
return (__vector signed long long)__builtin_s390_vperm(
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_perm(__vector unsigned long long __a, __vector unsigned long long __b,
__vector unsigned char __c) {
return (__vector unsigned long long)__builtin_s390_vperm(
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_perm(__vector __bool long long __a, __vector __bool long long __b,
__vector unsigned char __c) {
return (__vector __bool long long)__builtin_s390_vperm(
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
}
static inline __ATTRS_o_ai __vector signed __int128
vec_perm(__vector signed __int128 __a, __vector signed __int128 __b,
__vector unsigned char __c) {
return (__vector signed __int128)__builtin_s390_vperm(
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_perm(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
__vector unsigned char __c) {
return (__vector unsigned __int128)__builtin_s390_vperm(
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_perm(__vector __bool __int128 __a, __vector __bool __int128 __b,
__vector unsigned char __c) {
return (__vector __bool __int128)__builtin_s390_vperm(
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_perm(__vector float __a, __vector float __b,
__vector unsigned char __c) {
return (__vector float)__builtin_s390_vperm(
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_perm(__vector double __a, __vector double __b,
__vector unsigned char __c) {
return (__vector double)__builtin_s390_vperm(
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
}
/*-- vec_permi --------------------------------------------------------------*/
// This prototype is deprecated.
extern __ATTRS_o __vector signed long long
vec_permi(__vector signed long long __a, __vector signed long long __b,
int __c)
__constant_range(__c, 0, 3);
// This prototype is deprecated.
extern __ATTRS_o __vector unsigned long long
vec_permi(__vector unsigned long long __a, __vector unsigned long long __b,
int __c)
__constant_range(__c, 0, 3);
// This prototype is deprecated.
extern __ATTRS_o __vector __bool long long
vec_permi(__vector __bool long long __a, __vector __bool long long __b,
int __c)
__constant_range(__c, 0, 3);
// This prototype is deprecated.
extern __ATTRS_o __vector double
vec_permi(__vector double __a, __vector double __b, int __c)
__constant_range(__c, 0, 3);
#define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
__builtin_s390_vpdi((__vector unsigned long long)(X), \
(__vector unsigned long long)(Y), \
(((Z) & 2) << 1) | ((Z) & 1)))
/*-- vec_bperm --------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_ai __vector unsigned long long
vec_bperm(__vector unsigned __int128 __a, __vector unsigned char __b) {
return __builtin_s390_vbperm((__vector unsigned char)__a, __b);
}
#endif
/*-- vec_bperm_u128 ---------------------------------------------------------*/
#if __ARCH__ >= 12
// This prototype is deprecated.
static inline __ATTRS_ai __vector unsigned long long
vec_bperm_u128(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vbperm(__a, __b);
}
#endif
/*-- vec_revb ---------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed short
vec_revb(__vector signed short __vec) {
return (__vector signed short)
__builtin_s390_vlbrh((__vector unsigned short)__vec);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_revb(__vector unsigned short __vec) {
return __builtin_s390_vlbrh(__vec);
}
static inline __ATTRS_o_ai __vector signed int
vec_revb(__vector signed int __vec) {
return (__vector signed int)
__builtin_s390_vlbrf((__vector unsigned int)__vec);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_revb(__vector unsigned int __vec) {
return __builtin_s390_vlbrf(__vec);
}
static inline __ATTRS_o_ai __vector signed long long
vec_revb(__vector signed long long __vec) {
return (__vector signed long long)
__builtin_s390_vlbrg((__vector unsigned long long)__vec);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_revb(__vector unsigned long long __vec) {
return __builtin_s390_vlbrg(__vec);
}
static inline __ATTRS_o_ai __vector signed __int128
vec_revb(__vector signed __int128 __vec) {
return (__vector signed __int128)
__builtin_s390_vlbrq((unsigned __int128)__vec);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_revb(__vector unsigned __int128 __vec) {
return (__vector unsigned __int128)
__builtin_s390_vlbrq((unsigned __int128)__vec);
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_revb(__vector float __vec) {
return (__vector float)
__builtin_s390_vlbrf((__vector unsigned int)__vec);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_revb(__vector double __vec) {
return (__vector double)
__builtin_s390_vlbrg((__vector unsigned long long)__vec);
}
/*-- vec_reve ---------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_reve(__vector signed char __vec) {
return (__vector signed char) { __vec[15], __vec[14], __vec[13], __vec[12],
__vec[11], __vec[10], __vec[9], __vec[8],
__vec[7], __vec[6], __vec[5], __vec[4],
__vec[3], __vec[2], __vec[1], __vec[0] };
}
static inline __ATTRS_o_ai __vector unsigned char
vec_reve(__vector unsigned char __vec) {
return (__vector unsigned char) { __vec[15], __vec[14], __vec[13], __vec[12],
__vec[11], __vec[10], __vec[9], __vec[8],
__vec[7], __vec[6], __vec[5], __vec[4],
__vec[3], __vec[2], __vec[1], __vec[0] };
}
static inline __ATTRS_o_ai __vector __bool char
vec_reve(__vector __bool char __vec) {
return (__vector __bool char) { __vec[15], __vec[14], __vec[13], __vec[12],
__vec[11], __vec[10], __vec[9], __vec[8],
__vec[7], __vec[6], __vec[5], __vec[4],
__vec[3], __vec[2], __vec[1], __vec[0] };
}
static inline __ATTRS_o_ai __vector signed short
vec_reve(__vector signed short __vec) {
return (__vector signed short) { __vec[7], __vec[6], __vec[5], __vec[4],
__vec[3], __vec[2], __vec[1], __vec[0] };
}
static inline __ATTRS_o_ai __vector unsigned short
vec_reve(__vector unsigned short __vec) {
return (__vector unsigned short) { __vec[7], __vec[6], __vec[5], __vec[4],
__vec[3], __vec[2], __vec[1], __vec[0] };
}
static inline __ATTRS_o_ai __vector __bool short
vec_reve(__vector __bool short __vec) {
return (__vector __bool short) { __vec[7], __vec[6], __vec[5], __vec[4],
__vec[3], __vec[2], __vec[1], __vec[0] };
}
static inline __ATTRS_o_ai __vector signed int
vec_reve(__vector signed int __vec) {
return (__vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] };
}
static inline __ATTRS_o_ai __vector unsigned int
vec_reve(__vector unsigned int __vec) {
return (__vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] };
}
static inline __ATTRS_o_ai __vector __bool int
vec_reve(__vector __bool int __vec) {
return (__vector __bool int) { __vec[3], __vec[2], __vec[1], __vec[0] };
}
static inline __ATTRS_o_ai __vector signed long long
vec_reve(__vector signed long long __vec) {
return (__vector signed long long) { __vec[1], __vec[0] };
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_reve(__vector unsigned long long __vec) {
return (__vector unsigned long long) { __vec[1], __vec[0] };
}
static inline __ATTRS_o_ai __vector __bool long long
vec_reve(__vector __bool long long __vec) {
return (__vector __bool long long) { __vec[1], __vec[0] };
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_reve(__vector float __vec) {
return (__vector float) { __vec[3], __vec[2], __vec[1], __vec[0] };
}
#endif
static inline __ATTRS_o_ai __vector double
vec_reve(__vector double __vec) {
return (__vector double) { __vec[1], __vec[0] };
}
/*-- vec_sel ----------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_sel(__vector signed char __a, __vector signed char __b,
__vector unsigned char __c) {
return (((__vector signed char)__c & __b) |
(~(__vector signed char)__c & __a));
}
static inline __ATTRS_o_ai __vector signed char
vec_sel(__vector signed char __a, __vector signed char __b,
__vector __bool char __c) {
return (((__vector signed char)__c & __b) |
(~(__vector signed char)__c & __a));
}
static inline __ATTRS_o_ai __vector __bool char
vec_sel(__vector __bool char __a, __vector __bool char __b,
__vector unsigned char __c) {
return (((__vector __bool char)__c & __b) |
(~(__vector __bool char)__c & __a));
}
static inline __ATTRS_o_ai __vector __bool char
vec_sel(__vector __bool char __a, __vector __bool char __b,
__vector __bool char __c) {
return (__c & __b) | (~__c & __a);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_sel(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c) {
return (__c & __b) | (~__c & __a);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_sel(__vector unsigned char __a, __vector unsigned char __b,
__vector __bool char __c) {
return (((__vector unsigned char)__c & __b) |
(~(__vector unsigned char)__c & __a));
}
static inline __ATTRS_o_ai __vector signed short
vec_sel(__vector signed short __a, __vector signed short __b,
__vector unsigned short __c) {
return (((__vector signed short)__c & __b) |
(~(__vector signed short)__c & __a));
}
static inline __ATTRS_o_ai __vector signed short
vec_sel(__vector signed short __a, __vector signed short __b,
__vector __bool short __c) {
return (((__vector signed short)__c & __b) |
(~(__vector signed short)__c & __a));
}
static inline __ATTRS_o_ai __vector __bool short
vec_sel(__vector __bool short __a, __vector __bool short __b,
__vector unsigned short __c) {
return (((__vector __bool short)__c & __b) |
(~(__vector __bool short)__c & __a));
}
static inline __ATTRS_o_ai __vector __bool short
vec_sel(__vector __bool short __a, __vector __bool short __b,
__vector __bool short __c) {
return (__c & __b) | (~__c & __a);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_sel(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned short __c) {
return (__c & __b) | (~__c & __a);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_sel(__vector unsigned short __a, __vector unsigned short __b,
__vector __bool short __c) {
return (((__vector unsigned short)__c & __b) |
(~(__vector unsigned short)__c & __a));
}
static inline __ATTRS_o_ai __vector signed int
vec_sel(__vector signed int __a, __vector signed int __b,
__vector unsigned int __c) {
return (((__vector signed int)__c & __b) |
(~(__vector signed int)__c & __a));
}
static inline __ATTRS_o_ai __vector signed int
vec_sel(__vector signed int __a, __vector signed int __b,
__vector __bool int __c) {
return (((__vector signed int)__c & __b) |
(~(__vector signed int)__c & __a));
}
static inline __ATTRS_o_ai __vector __bool int
vec_sel(__vector __bool int __a, __vector __bool int __b,
__vector unsigned int __c) {
return (((__vector __bool int)__c & __b) |
(~(__vector __bool int)__c & __a));
}
static inline __ATTRS_o_ai __vector __bool int
vec_sel(__vector __bool int __a, __vector __bool int __b,
__vector __bool int __c) {
return (__c & __b) | (~__c & __a);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_sel(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned int __c) {
return (__c & __b) | (~__c & __a);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_sel(__vector unsigned int __a, __vector unsigned int __b,
__vector __bool int __c) {
return (((__vector unsigned int)__c & __b) |
(~(__vector unsigned int)__c & __a));
}
static inline __ATTRS_o_ai __vector signed long long
vec_sel(__vector signed long long __a, __vector signed long long __b,
__vector unsigned long long __c) {
return (((__vector signed long long)__c & __b) |
(~(__vector signed long long)__c & __a));
}
static inline __ATTRS_o_ai __vector signed long long
vec_sel(__vector signed long long __a, __vector signed long long __b,
__vector __bool long long __c) {
return (((__vector signed long long)__c & __b) |
(~(__vector signed long long)__c & __a));
}
static inline __ATTRS_o_ai __vector __bool long long
vec_sel(__vector __bool long long __a, __vector __bool long long __b,
__vector unsigned long long __c) {
return (((__vector __bool long long)__c & __b) |
(~(__vector __bool long long)__c & __a));
}
static inline __ATTRS_o_ai __vector __bool long long
vec_sel(__vector __bool long long __a, __vector __bool long long __b,
__vector __bool long long __c) {
return (__c & __b) | (~__c & __a);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
__vector unsigned long long __c) {
return (__c & __b) | (~__c & __a);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
__vector __bool long long __c) {
return (((__vector unsigned long long)__c & __b) |
(~(__vector unsigned long long)__c & __a));
}
static inline __ATTRS_o_ai __vector signed __int128
vec_sel(__vector signed __int128 __a, __vector signed __int128 __b,
__vector unsigned __int128 __c) {
return (((__vector signed __int128)__c & __b) |
(~(__vector signed __int128)__c & __a));
}
static inline __ATTRS_o_ai __vector signed __int128
vec_sel(__vector signed __int128 __a, __vector signed __int128 __b,
__vector __bool __int128 __c) {
return (((__vector signed __int128)__c & __b) |
(~(__vector signed __int128)__c & __a));
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_sel(__vector __bool __int128 __a, __vector __bool __int128 __b,
__vector unsigned __int128 __c) {
return (((__vector __bool __int128)__c & __b) |
(~(__vector __bool __int128)__c & __a));
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_sel(__vector __bool __int128 __a, __vector __bool __int128 __b,
__vector __bool __int128 __c) {
return (__c & __b) | (~__c & __a);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_sel(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
__vector unsigned __int128 __c) {
return (__c & __b) | (~__c & __a);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_sel(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
__vector __bool __int128 __c) {
return (((__vector unsigned __int128)__c & __b) |
(~(__vector unsigned __int128)__c & __a));
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_sel(__vector float __a, __vector float __b, __vector unsigned int __c) {
return (__vector float)((__c & (__vector unsigned int)__b) |
(~__c & (__vector unsigned int)__a));
}
static inline __ATTRS_o_ai __vector float
vec_sel(__vector float __a, __vector float __b, __vector __bool int __c) {
__vector unsigned int __ac = (__vector unsigned int)__a;
__vector unsigned int __bc = (__vector unsigned int)__b;
__vector unsigned int __cc = (__vector unsigned int)__c;
return (__vector float)((__cc & __bc) | (~__cc & __ac));
}
#endif
static inline __ATTRS_o_ai __vector double
vec_sel(__vector double __a, __vector double __b,
__vector unsigned long long __c) {
return (__vector double)((__c & (__vector unsigned long long)__b) |
(~__c & (__vector unsigned long long)__a));
}
static inline __ATTRS_o_ai __vector double
vec_sel(__vector double __a, __vector double __b,
__vector __bool long long __c) {
__vector unsigned long long __ac = (__vector unsigned long long)__a;
__vector unsigned long long __bc = (__vector unsigned long long)__b;
__vector unsigned long long __cc = (__vector unsigned long long)__c;
return (__vector double)((__cc & __bc) | (~__cc & __ac));
}
/*-- vec_gather_element -----------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed int
vec_gather_element(__vector signed int __vec,
__vector unsigned int __offset,
const signed int *__ptr, int __index)
__constant_range(__index, 0, 3) {
__vec[__index] = *(const signed int *)(
(const char *)__ptr + __offset[__index]);
return __vec;
}
static inline __ATTRS_o_ai __vector __bool int
vec_gather_element(__vector __bool int __vec,
__vector unsigned int __offset,
const unsigned int *__ptr, int __index)
__constant_range(__index, 0, 3) {
__vec[__index] = *(const unsigned int *)(
(const char *)__ptr + __offset[__index]);
return __vec;
}
static inline __ATTRS_o_ai __vector unsigned int
vec_gather_element(__vector unsigned int __vec,
__vector unsigned int __offset,
const unsigned int *__ptr, int __index)
__constant_range(__index, 0, 3) {
__vec[__index] = *(const unsigned int *)(
(const char *)__ptr + __offset[__index]);
return __vec;
}
static inline __ATTRS_o_ai __vector signed long long
vec_gather_element(__vector signed long long __vec,
__vector unsigned long long __offset,
const signed long long *__ptr, int __index)
__constant_range(__index, 0, 1) {
__vec[__index] = *(const signed long long *)(
(const char *)__ptr + __offset[__index]);
return __vec;
}
static inline __ATTRS_o_ai __vector __bool long long
vec_gather_element(__vector __bool long long __vec,
__vector unsigned long long __offset,
const unsigned long long *__ptr, int __index)
__constant_range(__index, 0, 1) {
__vec[__index] = *(const unsigned long long *)(
(const char *)__ptr + __offset[__index]);
return __vec;
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_gather_element(__vector unsigned long long __vec,
__vector unsigned long long __offset,
const unsigned long long *__ptr, int __index)
__constant_range(__index, 0, 1) {
__vec[__index] = *(const unsigned long long *)(
(const char *)__ptr + __offset[__index]);
return __vec;
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_gather_element(__vector float __vec,
__vector unsigned int __offset,
const float *__ptr, int __index)
__constant_range(__index, 0, 3) {
__vec[__index] = *(const float *)(
(const char *)__ptr + __offset[__index]);
return __vec;
}
#endif
static inline __ATTRS_o_ai __vector double
vec_gather_element(__vector double __vec,
__vector unsigned long long __offset,
const double *__ptr, int __index)
__constant_range(__index, 0, 1) {
__vec[__index] = *(const double *)(
(const char *)__ptr + __offset[__index]);
return __vec;
}
/*-- vec_scatter_element ----------------------------------------------------*/
static inline __ATTRS_o_ai void
vec_scatter_element(__vector signed int __vec,
__vector unsigned int __offset,
signed int *__ptr, int __index)
__constant_range(__index, 0, 3) {
*(signed int *)((char *)__ptr + __offset[__index]) =
__vec[__index];
}
static inline __ATTRS_o_ai void
vec_scatter_element(__vector __bool int __vec,
__vector unsigned int __offset,
unsigned int *__ptr, int __index)
__constant_range(__index, 0, 3) {
*(unsigned int *)((char *)__ptr + __offset[__index]) =
__vec[__index];
}
static inline __ATTRS_o_ai void
vec_scatter_element(__vector unsigned int __vec,
__vector unsigned int __offset,
unsigned int *__ptr, int __index)
__constant_range(__index, 0, 3) {
*(unsigned int *)((char *)__ptr + __offset[__index]) =
__vec[__index];
}
static inline __ATTRS_o_ai void
vec_scatter_element(__vector signed long long __vec,
__vector unsigned long long __offset,
signed long long *__ptr, int __index)
__constant_range(__index, 0, 1) {
*(signed long long *)((char *)__ptr + __offset[__index]) =
__vec[__index];
}
static inline __ATTRS_o_ai void
vec_scatter_element(__vector __bool long long __vec,
__vector unsigned long long __offset,
unsigned long long *__ptr, int __index)
__constant_range(__index, 0, 1) {
*(unsigned long long *)((char *)__ptr + __offset[__index]) =
__vec[__index];
}
static inline __ATTRS_o_ai void
vec_scatter_element(__vector unsigned long long __vec,
__vector unsigned long long __offset,
unsigned long long *__ptr, int __index)
__constant_range(__index, 0, 1) {
*(unsigned long long *)((char *)__ptr + __offset[__index]) =
__vec[__index];
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai void
vec_scatter_element(__vector float __vec,
__vector unsigned int __offset,
float *__ptr, int __index)
__constant_range(__index, 0, 3) {
*(float *)((char *)__ptr + __offset[__index]) =
__vec[__index];
}
#endif
static inline __ATTRS_o_ai void
vec_scatter_element(__vector double __vec,
__vector unsigned long long __offset,
double *__ptr, int __index)
__constant_range(__index, 0, 1) {
*(double *)((char *)__ptr + __offset[__index]) =
__vec[__index];
}
/*-- vec_xl -----------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_xl(long __offset, const signed char *__ptr) {
__vector signed char V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector signed char));
return V;
}
static inline __ATTRS_o_ai __vector unsigned char
vec_xl(long __offset, const unsigned char *__ptr) {
__vector unsigned char V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector unsigned char));
return V;
}
static inline __ATTRS_o_ai __vector signed short
vec_xl(long __offset, const signed short *__ptr) {
__vector signed short V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector signed short));
return V;
}
static inline __ATTRS_o_ai __vector unsigned short
vec_xl(long __offset, const unsigned short *__ptr) {
__vector unsigned short V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector unsigned short));
return V;
}
static inline __ATTRS_o_ai __vector signed int
vec_xl(long __offset, const signed int *__ptr) {
__vector signed int V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector signed int));
return V;
}
static inline __ATTRS_o_ai __vector unsigned int
vec_xl(long __offset, const unsigned int *__ptr) {
__vector unsigned int V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector unsigned int));
return V;
}
static inline __ATTRS_o_ai __vector signed long long
vec_xl(long __offset, const signed long long *__ptr) {
__vector signed long long V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector signed long long));
return V;
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_xl(long __offset, const unsigned long long *__ptr) {
__vector unsigned long long V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector unsigned long long));
return V;
}
static inline __ATTRS_o_ai __vector signed __int128
vec_xl(long __offset, const signed __int128 *__ptr) {
__vector signed __int128 V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector signed __int128));
return V;
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_xl(long __offset, const unsigned __int128 *__ptr) {
__vector unsigned __int128 V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector unsigned __int128));
return V;
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_xl(long __offset, const float *__ptr) {
__vector float V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector float));
return V;
}
#endif
static inline __ATTRS_o_ai __vector double
vec_xl(long __offset, const double *__ptr) {
__vector double V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector double));
return V;
}
/*-- vec_xld2 ---------------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_xld2(long __offset, const signed char *__ptr) {
__vector signed char V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector signed char));
return V;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_xld2(long __offset, const unsigned char *__ptr) {
__vector unsigned char V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector unsigned char));
return V;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_xld2(long __offset, const signed short *__ptr) {
__vector signed short V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector signed short));
return V;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_xld2(long __offset, const unsigned short *__ptr) {
__vector unsigned short V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector unsigned short));
return V;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_xld2(long __offset, const signed int *__ptr) {
__vector signed int V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector signed int));
return V;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_xld2(long __offset, const unsigned int *__ptr) {
__vector unsigned int V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector unsigned int));
return V;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_xld2(long __offset, const signed long long *__ptr) {
__vector signed long long V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector signed long long));
return V;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_xld2(long __offset, const unsigned long long *__ptr) {
__vector unsigned long long V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector unsigned long long));
return V;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector double
vec_xld2(long __offset, const double *__ptr) {
__vector double V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector double));
return V;
}
/*-- vec_xlw4 ---------------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_xlw4(long __offset, const signed char *__ptr) {
__vector signed char V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector signed char));
return V;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_xlw4(long __offset, const unsigned char *__ptr) {
__vector unsigned char V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector unsigned char));
return V;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_xlw4(long __offset, const signed short *__ptr) {
__vector signed short V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector signed short));
return V;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_xlw4(long __offset, const unsigned short *__ptr) {
__vector unsigned short V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector unsigned short));
return V;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_xlw4(long __offset, const signed int *__ptr) {
__vector signed int V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector signed int));
return V;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_xlw4(long __offset, const unsigned int *__ptr) {
__vector unsigned int V;
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
sizeof(__vector unsigned int));
return V;
}
/*-- vec_xst ----------------------------------------------------------------*/
static inline __ATTRS_o_ai void
vec_xst(__vector signed char __vec, long __offset, signed char *__ptr) {
__vector signed char V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector signed char));
}
static inline __ATTRS_o_ai void
vec_xst(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
__vector unsigned char V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector unsigned char));
}
static inline __ATTRS_o_ai void
vec_xst(__vector signed short __vec, long __offset, signed short *__ptr) {
__vector signed short V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector signed short));
}
static inline __ATTRS_o_ai void
vec_xst(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
__vector unsigned short V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector unsigned short));
}
static inline __ATTRS_o_ai void
vec_xst(__vector signed int __vec, long __offset, signed int *__ptr) {
__vector signed int V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
}
static inline __ATTRS_o_ai void
vec_xst(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
__vector unsigned int V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector unsigned int));
}
static inline __ATTRS_o_ai void
vec_xst(__vector signed long long __vec, long __offset,
signed long long *__ptr) {
__vector signed long long V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector signed long long));
}
static inline __ATTRS_o_ai void
vec_xst(__vector unsigned long long __vec, long __offset,
unsigned long long *__ptr) {
__vector unsigned long long V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector unsigned long long));
}
static inline __ATTRS_o_ai void
vec_xst(__vector signed __int128 __vec, long __offset,
signed __int128 *__ptr) {
__vector signed __int128 V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector signed __int128));
}
static inline __ATTRS_o_ai void
vec_xst(__vector unsigned __int128 __vec, long __offset,
unsigned __int128 *__ptr) {
__vector unsigned __int128 V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector unsigned __int128));
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai void
vec_xst(__vector float __vec, long __offset, float *__ptr) {
__vector float V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector float));
}
#endif
static inline __ATTRS_o_ai void
vec_xst(__vector double __vec, long __offset, double *__ptr) {
__vector double V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
}
/*-- vec_xstd2 --------------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_xstd2(__vector signed char __vec, long __offset, signed char *__ptr) {
__vector signed char V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector signed char));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
__vector unsigned char V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector unsigned char));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_xstd2(__vector signed short __vec, long __offset, signed short *__ptr) {
__vector signed short V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector signed short));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
__vector unsigned short V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector unsigned short));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_xstd2(__vector signed int __vec, long __offset, signed int *__ptr) {
__vector signed int V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
__vector unsigned int V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector unsigned int));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_xstd2(__vector signed long long __vec, long __offset,
signed long long *__ptr) {
__vector signed long long V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector signed long long));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned long long __vec, long __offset,
unsigned long long *__ptr) {
__vector unsigned long long V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector unsigned long long));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_xstd2(__vector double __vec, long __offset, double *__ptr) {
__vector double V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
}
/*-- vec_xstw4 --------------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_xstw4(__vector signed char __vec, long __offset, signed char *__ptr) {
__vector signed char V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector signed char));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
__vector unsigned char V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector unsigned char));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_xstw4(__vector signed short __vec, long __offset, signed short *__ptr) {
__vector signed short V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector signed short));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
__vector unsigned short V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector unsigned short));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_xstw4(__vector signed int __vec, long __offset, signed int *__ptr) {
__vector signed int V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
__vector unsigned int V = __vec;
__builtin_memcpy(((char *)__ptr + __offset), &V,
sizeof(__vector unsigned int));
}
/*-- vec_load_bndry ---------------------------------------------------------*/
extern __ATTRS_o __vector signed char
vec_load_bndry(const signed char *__ptr, unsigned short __len)
__constant_pow2_range(__len, 64, 4096);
extern __ATTRS_o __vector unsigned char
vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
__constant_pow2_range(__len, 64, 4096);
extern __ATTRS_o __vector signed short
vec_load_bndry(const signed short *__ptr, unsigned short __len)
__constant_pow2_range(__len, 64, 4096);
extern __ATTRS_o __vector unsigned short
vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
__constant_pow2_range(__len, 64, 4096);
extern __ATTRS_o __vector signed int
vec_load_bndry(const signed int *__ptr, unsigned short __len)
__constant_pow2_range(__len, 64, 4096);
extern __ATTRS_o __vector unsigned int
vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
__constant_pow2_range(__len, 64, 4096);
extern __ATTRS_o __vector signed long long
vec_load_bndry(const signed long long *__ptr, unsigned short __len)
__constant_pow2_range(__len, 64, 4096);
extern __ATTRS_o __vector unsigned long long
vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
__constant_pow2_range(__len, 64, 4096);
extern __ATTRS_o __vector signed __int128
vec_load_bndry(const signed __int128 *__ptr, unsigned short __len)
__constant_pow2_range(__len, 64, 4096);
extern __ATTRS_o __vector unsigned __int128
vec_load_bndry(const unsigned __int128 *__ptr, unsigned short __len)
__constant_pow2_range(__len, 64, 4096);
#if __ARCH__ >= 12
extern __ATTRS_o __vector float
vec_load_bndry(const float *__ptr, unsigned short __len)
__constant_pow2_range(__len, 64, 4096);
#endif
extern __ATTRS_o __vector double
vec_load_bndry(const double *__ptr, unsigned short __len)
__constant_pow2_range(__len, 64, 4096);
#define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
__builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
(Y) == 128 ? 1 : \
(Y) == 256 ? 2 : \
(Y) == 512 ? 3 : \
(Y) == 1024 ? 4 : \
(Y) == 2048 ? 5 : \
(Y) == 4096 ? 6 : -1)))
/*-- vec_load_len -----------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_load_len(const signed char *__ptr, unsigned int __len) {
return (__vector signed char)__builtin_s390_vll(__len, __ptr);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_load_len(const unsigned char *__ptr, unsigned int __len) {
return (__vector unsigned char)__builtin_s390_vll(__len, __ptr);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_load_len(const signed short *__ptr, unsigned int __len) {
return (__vector signed short)__builtin_s390_vll(__len, __ptr);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_load_len(const unsigned short *__ptr, unsigned int __len) {
return (__vector unsigned short)__builtin_s390_vll(__len, __ptr);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_load_len(const signed int *__ptr, unsigned int __len) {
return (__vector signed int)__builtin_s390_vll(__len, __ptr);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_load_len(const unsigned int *__ptr, unsigned int __len) {
return (__vector unsigned int)__builtin_s390_vll(__len, __ptr);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_load_len(const signed long long *__ptr, unsigned int __len) {
return (__vector signed long long)__builtin_s390_vll(__len, __ptr);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
return (__vector unsigned long long)__builtin_s390_vll(__len, __ptr);
}
#if __ARCH__ >= 12
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector float
vec_load_len(const float *__ptr, unsigned int __len) {
return (__vector float)__builtin_s390_vll(__len, __ptr);
}
#endif
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector double
vec_load_len(const double *__ptr, unsigned int __len) {
return (__vector double)__builtin_s390_vll(__len, __ptr);
}
/*-- vec_load_len_r ---------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector signed char
vec_load_len_r(const signed char *__ptr, unsigned int __len) {
return (__vector signed char)__builtin_s390_vlrlr(__len, __ptr);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {
return (__vector unsigned char)__builtin_s390_vlrlr(__len, __ptr);
}
#endif
/*-- vec_store_len ----------------------------------------------------------*/
static inline __ATTRS_o_ai void
vec_store_len(__vector signed char __vec, signed char *__ptr,
unsigned int __len) {
__builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
}
static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned char __vec, unsigned char *__ptr,
unsigned int __len) {
__builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_store_len(__vector signed short __vec, signed short *__ptr,
unsigned int __len) {
__builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned short __vec, unsigned short *__ptr,
unsigned int __len) {
__builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_store_len(__vector signed int __vec, signed int *__ptr,
unsigned int __len) {
__builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned int __vec, unsigned int *__ptr,
unsigned int __len) {
__builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_store_len(__vector signed long long __vec, signed long long *__ptr,
unsigned int __len) {
__builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned long long __vec, unsigned long long *__ptr,
unsigned int __len) {
__builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
}
#if __ARCH__ >= 12
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_store_len(__vector float __vec, float *__ptr,
unsigned int __len) {
__builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
}
#endif
// This prototype is deprecated.
static inline __ATTRS_o_ai void
vec_store_len(__vector double __vec, double *__ptr,
unsigned int __len) {
__builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
}
/*-- vec_store_len_r --------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai void
vec_store_len_r(__vector signed char __vec, signed char *__ptr,
unsigned int __len) {
__builtin_s390_vstrlr(__vec, __len, __ptr);
}
static inline __ATTRS_o_ai void
vec_store_len_r(__vector unsigned char __vec, unsigned char *__ptr,
unsigned int __len) {
__builtin_s390_vstrlr((__vector signed char)__vec, __len, __ptr);
}
#endif
/*-- vec_load_pair ----------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed long long
vec_load_pair(signed long long __a, signed long long __b) {
return (__vector signed long long)(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_load_pair(unsigned long long __a, unsigned long long __b) {
return (__vector unsigned long long)(__a, __b);
}
/*-- vec_genmask ------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned char
vec_genmask(unsigned short __mask)
__constant(__mask) {
return (__vector unsigned char)(
__mask & 0x8000 ? 0xff : 0,
__mask & 0x4000 ? 0xff : 0,
__mask & 0x2000 ? 0xff : 0,
__mask & 0x1000 ? 0xff : 0,
__mask & 0x0800 ? 0xff : 0,
__mask & 0x0400 ? 0xff : 0,
__mask & 0x0200 ? 0xff : 0,
__mask & 0x0100 ? 0xff : 0,
__mask & 0x0080 ? 0xff : 0,
__mask & 0x0040 ? 0xff : 0,
__mask & 0x0020 ? 0xff : 0,
__mask & 0x0010 ? 0xff : 0,
__mask & 0x0008 ? 0xff : 0,
__mask & 0x0004 ? 0xff : 0,
__mask & 0x0002 ? 0xff : 0,
__mask & 0x0001 ? 0xff : 0);
}
/*-- vec_genmasks_* ---------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned char
vec_genmasks_8(unsigned char __first, unsigned char __last)
__constant(__first) __constant(__last) {
unsigned char __bit1 = __first & 7;
unsigned char __bit2 = __last & 7;
unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
unsigned char __value = (__bit1 <= __bit2 ?
__mask1 & ~__mask2 :
__mask1 | ~__mask2);
return (__vector unsigned char)__value;
}
static inline __ATTRS_o_ai __vector unsigned short
vec_genmasks_16(unsigned char __first, unsigned char __last)
__constant(__first) __constant(__last) {
unsigned char __bit1 = __first & 15;
unsigned char __bit2 = __last & 15;
unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
unsigned short __value = (__bit1 <= __bit2 ?
__mask1 & ~__mask2 :
__mask1 | ~__mask2);
return (__vector unsigned short)__value;
}
static inline __ATTRS_o_ai __vector unsigned int
vec_genmasks_32(unsigned char __first, unsigned char __last)
__constant(__first) __constant(__last) {
unsigned char __bit1 = __first & 31;
unsigned char __bit2 = __last & 31;
unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
unsigned int __value = (__bit1 <= __bit2 ?
__mask1 & ~__mask2 :
__mask1 | ~__mask2);
return (__vector unsigned int)__value;
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_genmasks_64(unsigned char __first, unsigned char __last)
__constant(__first) __constant(__last) {
unsigned char __bit1 = __first & 63;
unsigned char __bit2 = __last & 63;
unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
unsigned long long __value = (__bit1 <= __bit2 ?
__mask1 & ~__mask2 :
__mask1 | ~__mask2);
return (__vector unsigned long long)__value;
}
/*-- vec_gen_element_masks_* ------------------------------------------------*/
#if __ARCH__ >= 15
static inline __ATTRS_ai __vector unsigned char
vec_gen_element_masks_8(__vector unsigned short __mask) {
return __builtin_s390_vgemb(__mask);
}
static inline __ATTRS_ai __vector unsigned short
vec_gen_element_masks_16(__vector unsigned char __mask) {
return __builtin_s390_vgemh(__mask);
}
static inline __ATTRS_ai __vector unsigned int
vec_gen_element_masks_32(__vector unsigned char __mask) {
return __builtin_s390_vgemf(__mask);
}
static inline __ATTRS_ai __vector unsigned long long
vec_gen_element_masks_64(__vector unsigned char __mask) {
return __builtin_s390_vgemg(__mask);
}
static inline __ATTRS_ai __vector unsigned __int128
vec_gen_element_masks_128(__vector unsigned char __mask) {
return (__vector unsigned __int128)__builtin_s390_vgemq(__mask);
}
#endif
/*-- vec_splat --------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_splat(__vector signed char __vec, int __index)
__constant_range(__index, 0, 15) {
return (__vector signed char)__vec[__index];
}
static inline __ATTRS_o_ai __vector __bool char
vec_splat(__vector __bool char __vec, int __index)
__constant_range(__index, 0, 15) {
return (__vector __bool char)(__vector unsigned char)__vec[__index];
}
static inline __ATTRS_o_ai __vector unsigned char
vec_splat(__vector unsigned char __vec, int __index)
__constant_range(__index, 0, 15) {
return (__vector unsigned char)__vec[__index];
}
static inline __ATTRS_o_ai __vector signed short
vec_splat(__vector signed short __vec, int __index)
__constant_range(__index, 0, 7) {
return (__vector signed short)__vec[__index];
}
static inline __ATTRS_o_ai __vector __bool short
vec_splat(__vector __bool short __vec, int __index)
__constant_range(__index, 0, 7) {
return (__vector __bool short)(__vector unsigned short)__vec[__index];
}
static inline __ATTRS_o_ai __vector unsigned short
vec_splat(__vector unsigned short __vec, int __index)
__constant_range(__index, 0, 7) {
return (__vector unsigned short)__vec[__index];
}
static inline __ATTRS_o_ai __vector signed int
vec_splat(__vector signed int __vec, int __index)
__constant_range(__index, 0, 3) {
return (__vector signed int)__vec[__index];
}
static inline __ATTRS_o_ai __vector __bool int
vec_splat(__vector __bool int __vec, int __index)
__constant_range(__index, 0, 3) {
return (__vector __bool int)(__vector unsigned int)__vec[__index];
}
static inline __ATTRS_o_ai __vector unsigned int
vec_splat(__vector unsigned int __vec, int __index)
__constant_range(__index, 0, 3) {
return (__vector unsigned int)__vec[__index];
}
static inline __ATTRS_o_ai __vector signed long long
vec_splat(__vector signed long long __vec, int __index)
__constant_range(__index, 0, 1) {
return (__vector signed long long)__vec[__index];
}
static inline __ATTRS_o_ai __vector __bool long long
vec_splat(__vector __bool long long __vec, int __index)
__constant_range(__index, 0, 1) {
return ((__vector __bool long long)
(__vector unsigned long long)__vec[__index]);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_splat(__vector unsigned long long __vec, int __index)
__constant_range(__index, 0, 1) {
return (__vector unsigned long long)__vec[__index];
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_splat(__vector float __vec, int __index)
__constant_range(__index, 0, 3) {
return (__vector float)__vec[__index];
}
#endif
static inline __ATTRS_o_ai __vector double
vec_splat(__vector double __vec, int __index)
__constant_range(__index, 0, 1) {
return (__vector double)__vec[__index];
}
/*-- vec_splat_s* -----------------------------------------------------------*/
static inline __ATTRS_ai __vector signed char
vec_splat_s8(signed char __scalar)
__constant(__scalar) {
return (__vector signed char)__scalar;
}
static inline __ATTRS_ai __vector signed short
vec_splat_s16(signed short __scalar)
__constant(__scalar) {
return (__vector signed short)__scalar;
}
static inline __ATTRS_ai __vector signed int
vec_splat_s32(signed short __scalar)
__constant(__scalar) {
return (__vector signed int)(signed int)__scalar;
}
static inline __ATTRS_ai __vector signed long long
vec_splat_s64(signed short __scalar)
__constant(__scalar) {
return (__vector signed long long)(signed long)__scalar;
}
/*-- vec_splat_u* -----------------------------------------------------------*/
static inline __ATTRS_ai __vector unsigned char
vec_splat_u8(unsigned char __scalar)
__constant(__scalar) {
return (__vector unsigned char)__scalar;
}
static inline __ATTRS_ai __vector unsigned short
vec_splat_u16(unsigned short __scalar)
__constant(__scalar) {
return (__vector unsigned short)__scalar;
}
static inline __ATTRS_ai __vector unsigned int
vec_splat_u32(signed short __scalar)
__constant(__scalar) {
return (__vector unsigned int)(signed int)__scalar;
}
static inline __ATTRS_ai __vector unsigned long long
vec_splat_u64(signed short __scalar)
__constant(__scalar) {
return (__vector unsigned long long)(signed long long)__scalar;
}
/*-- vec_splats -------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_splats(signed char __scalar) {
return (__vector signed char)__scalar;
}
static inline __ATTRS_o_ai __vector unsigned char
vec_splats(unsigned char __scalar) {
return (__vector unsigned char)__scalar;
}
static inline __ATTRS_o_ai __vector signed short
vec_splats(signed short __scalar) {
return (__vector signed short)__scalar;
}
static inline __ATTRS_o_ai __vector unsigned short
vec_splats(unsigned short __scalar) {
return (__vector unsigned short)__scalar;
}
static inline __ATTRS_o_ai __vector signed int
vec_splats(signed int __scalar) {
return (__vector signed int)__scalar;
}
static inline __ATTRS_o_ai __vector unsigned int
vec_splats(unsigned int __scalar) {
return (__vector unsigned int)__scalar;
}
static inline __ATTRS_o_ai __vector signed long long
vec_splats(signed long long __scalar) {
return (__vector signed long long)__scalar;
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_splats(unsigned long long __scalar) {
return (__vector unsigned long long)__scalar;
}
static inline __ATTRS_o_ai __vector signed __int128
vec_splats(signed __int128 __scalar) {
return (__vector signed __int128)__scalar;
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_splats(unsigned __int128 __scalar) {
return (__vector unsigned __int128)__scalar;
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_splats(float __scalar) {
return (__vector float)__scalar;
}
#endif
static inline __ATTRS_o_ai __vector double
vec_splats(double __scalar) {
return (__vector double)__scalar;
}
/*-- vec_extend_s64 ---------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed char __a) {
return (__vector signed long long)(__a[7], __a[15]);
}
static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed short __a) {
return (__vector signed long long)(__a[3], __a[7]);
}
static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed int __a) {
return (__vector signed long long)(__a[1], __a[3]);
}
/*-- vec_mergeh -------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_mergeh(__vector signed char __a, __vector signed char __b) {
return (__vector signed char)(
__a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
__a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
}
static inline __ATTRS_o_ai __vector __bool char
vec_mergeh(__vector __bool char __a, __vector __bool char __b) {
return (__vector __bool char)(
__a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
__a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_mergeh(__vector unsigned char __a, __vector unsigned char __b) {
return (__vector unsigned char)(
__a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
__a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
}
static inline __ATTRS_o_ai __vector signed short
vec_mergeh(__vector signed short __a, __vector signed short __b) {
return (__vector signed short)(
__a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
}
static inline __ATTRS_o_ai __vector __bool short
vec_mergeh(__vector __bool short __a, __vector __bool short __b) {
return (__vector __bool short)(
__a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_mergeh(__vector unsigned short __a, __vector unsigned short __b) {
return (__vector unsigned short)(
__a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
}
static inline __ATTRS_o_ai __vector signed int
vec_mergeh(__vector signed int __a, __vector signed int __b) {
return (__vector signed int)(__a[0], __b[0], __a[1], __b[1]);
}
static inline __ATTRS_o_ai __vector __bool int
vec_mergeh(__vector __bool int __a, __vector __bool int __b) {
return (__vector __bool int)(__a[0], __b[0], __a[1], __b[1]);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_mergeh(__vector unsigned int __a, __vector unsigned int __b) {
return (__vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
}
static inline __ATTRS_o_ai __vector signed long long
vec_mergeh(__vector signed long long __a, __vector signed long long __b) {
return (__vector signed long long)(__a[0], __b[0]);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_mergeh(__vector __bool long long __a, __vector __bool long long __b) {
return (__vector __bool long long)(__a[0], __b[0]);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_mergeh(__vector unsigned long long __a, __vector unsigned long long __b) {
return (__vector unsigned long long)(__a[0], __b[0]);
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_mergeh(__vector float __a, __vector float __b) {
return (__vector float)(__a[0], __b[0], __a[1], __b[1]);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_mergeh(__vector double __a, __vector double __b) {
return (__vector double)(__a[0], __b[0]);
}
/*-- vec_mergel -------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_mergel(__vector signed char __a, __vector signed char __b) {
return (__vector signed char)(
__a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
__a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
}
static inline __ATTRS_o_ai __vector __bool char
vec_mergel(__vector __bool char __a, __vector __bool char __b) {
return (__vector __bool char)(
__a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
__a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_mergel(__vector unsigned char __a, __vector unsigned char __b) {
return (__vector unsigned char)(
__a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
__a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
}
static inline __ATTRS_o_ai __vector signed short
vec_mergel(__vector signed short __a, __vector signed short __b) {
return (__vector signed short)(
__a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
}
static inline __ATTRS_o_ai __vector __bool short
vec_mergel(__vector __bool short __a, __vector __bool short __b) {
return (__vector __bool short)(
__a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_mergel(__vector unsigned short __a, __vector unsigned short __b) {
return (__vector unsigned short)(
__a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
}
static inline __ATTRS_o_ai __vector signed int
vec_mergel(__vector signed int __a, __vector signed int __b) {
return (__vector signed int)(__a[2], __b[2], __a[3], __b[3]);
}
static inline __ATTRS_o_ai __vector __bool int
vec_mergel(__vector __bool int __a, __vector __bool int __b) {
return (__vector __bool int)(__a[2], __b[2], __a[3], __b[3]);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_mergel(__vector unsigned int __a, __vector unsigned int __b) {
return (__vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
}
static inline __ATTRS_o_ai __vector signed long long
vec_mergel(__vector signed long long __a, __vector signed long long __b) {
return (__vector signed long long)(__a[1], __b[1]);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_mergel(__vector __bool long long __a, __vector __bool long long __b) {
return (__vector __bool long long)(__a[1], __b[1]);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_mergel(__vector unsigned long long __a, __vector unsigned long long __b) {
return (__vector unsigned long long)(__a[1], __b[1]);
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_mergel(__vector float __a, __vector float __b) {
return (__vector float)(__a[2], __b[2], __a[3], __b[3]);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_mergel(__vector double __a, __vector double __b) {
return (__vector double)(__a[1], __b[1]);
}
/*-- vec_pack ---------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_pack(__vector signed short __a, __vector signed short __b) {
__vector signed char __ac = (__vector signed char)__a;
__vector signed char __bc = (__vector signed char)__b;
return (__vector signed char)(
__ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
__bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
}
static inline __ATTRS_o_ai __vector __bool char
vec_pack(__vector __bool short __a, __vector __bool short __b) {
__vector __bool char __ac = (__vector __bool char)__a;
__vector __bool char __bc = (__vector __bool char)__b;
return (__vector __bool char)(
__ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
__bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_pack(__vector unsigned short __a, __vector unsigned short __b) {
__vector unsigned char __ac = (__vector unsigned char)__a;
__vector unsigned char __bc = (__vector unsigned char)__b;
return (__vector unsigned char)(
__ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
__bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
}
static inline __ATTRS_o_ai __vector signed short
vec_pack(__vector signed int __a, __vector signed int __b) {
__vector signed short __ac = (__vector signed short)__a;
__vector signed short __bc = (__vector signed short)__b;
return (__vector signed short)(
__ac[1], __ac[3], __ac[5], __ac[7],
__bc[1], __bc[3], __bc[5], __bc[7]);
}
static inline __ATTRS_o_ai __vector __bool short
vec_pack(__vector __bool int __a, __vector __bool int __b) {
__vector __bool short __ac = (__vector __bool short)__a;
__vector __bool short __bc = (__vector __bool short)__b;
return (__vector __bool short)(
__ac[1], __ac[3], __ac[5], __ac[7],
__bc[1], __bc[3], __bc[5], __bc[7]);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_pack(__vector unsigned int __a, __vector unsigned int __b) {
__vector unsigned short __ac = (__vector unsigned short)__a;
__vector unsigned short __bc = (__vector unsigned short)__b;
return (__vector unsigned short)(
__ac[1], __ac[3], __ac[5], __ac[7],
__bc[1], __bc[3], __bc[5], __bc[7]);
}
static inline __ATTRS_o_ai __vector signed int
vec_pack(__vector signed long long __a, __vector signed long long __b) {
__vector signed int __ac = (__vector signed int)__a;
__vector signed int __bc = (__vector signed int)__b;
return (__vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
}
static inline __ATTRS_o_ai __vector __bool int
vec_pack(__vector __bool long long __a, __vector __bool long long __b) {
__vector __bool int __ac = (__vector __bool int)__a;
__vector __bool int __bc = (__vector __bool int)__b;
return (__vector __bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_pack(__vector unsigned long long __a, __vector unsigned long long __b) {
__vector unsigned int __ac = (__vector unsigned int)__a;
__vector unsigned int __bc = (__vector unsigned int)__b;
return (__vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
}
static inline __ATTRS_o_ai __vector signed long long
vec_pack(__vector signed __int128 __a, __vector signed __int128 __b) {
__vector signed long long __ac = (__vector signed long long)__a;
__vector signed long long __bc = (__vector signed long long)__b;
return (__vector signed long long)(__ac[1], __bc[1]);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_pack(__vector __bool __int128 __a, __vector __bool __int128 __b) {
__vector __bool long long __ac = (__vector __bool long long)__a;
__vector __bool long long __bc = (__vector __bool long long)__b;
return (__vector __bool long long)(__ac[1], __bc[1]);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_pack(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
__vector unsigned long long __ac = (__vector unsigned long long)__a;
__vector unsigned long long __bc = (__vector unsigned long long)__b;
return (__vector unsigned long long)(__ac[1], __bc[1]);
}
/*-- vec_packs --------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_packs(__vector signed short __a, __vector signed short __b) {
return __builtin_s390_vpksh(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_packs(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_vpklsh(__a, __b);
}
static inline __ATTRS_o_ai __vector signed short
vec_packs(__vector signed int __a, __vector signed int __b) {
return __builtin_s390_vpksf(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_packs(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_vpklsf(__a, __b);
}
static inline __ATTRS_o_ai __vector signed int
vec_packs(__vector signed long long __a, __vector signed long long __b) {
return __builtin_s390_vpksg(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_packs(__vector unsigned long long __a, __vector unsigned long long __b) {
return __builtin_s390_vpklsg(__a, __b);
}
/*-- vec_packs_cc -----------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_packs_cc(__vector signed short __a, __vector signed short __b, int *__cc) {
return __builtin_s390_vpkshs(__a, __b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_packs_cc(__vector unsigned short __a, __vector unsigned short __b,
int *__cc) {
return __builtin_s390_vpklshs(__a, __b, __cc);
}
static inline __ATTRS_o_ai __vector signed short
vec_packs_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
return __builtin_s390_vpksfs(__a, __b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_packs_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
return __builtin_s390_vpklsfs(__a, __b, __cc);
}
static inline __ATTRS_o_ai __vector signed int
vec_packs_cc(__vector signed long long __a, __vector signed long long __b,
int *__cc) {
return __builtin_s390_vpksgs(__a, __b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_packs_cc(__vector unsigned long long __a, __vector unsigned long long __b,
int *__cc) {
return __builtin_s390_vpklsgs(__a, __b, __cc);
}
/*-- vec_packsu -------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned char
vec_packsu(__vector signed short __a, __vector signed short __b) {
const __vector signed short __zero = (__vector signed short)0;
return __builtin_s390_vpklsh(
(__vector unsigned short)(__a >= __zero) & (__vector unsigned short)__a,
(__vector unsigned short)(__b >= __zero) & (__vector unsigned short)__b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_packsu(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_vpklsh(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_packsu(__vector signed int __a, __vector signed int __b) {
const __vector signed int __zero = (__vector signed int)0;
return __builtin_s390_vpklsf(
(__vector unsigned int)(__a >= __zero) & (__vector unsigned int)__a,
(__vector unsigned int)(__b >= __zero) & (__vector unsigned int)__b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_packsu(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_vpklsf(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_packsu(__vector signed long long __a, __vector signed long long __b) {
const __vector signed long long __zero = (__vector signed long long)0;
return __builtin_s390_vpklsg(
(__vector unsigned long long)(__a >= __zero) &
(__vector unsigned long long)__a,
(__vector unsigned long long)(__b >= __zero) &
(__vector unsigned long long)__b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_packsu(__vector unsigned long long __a, __vector unsigned long long __b) {
return __builtin_s390_vpklsg(__a, __b);
}
/*-- vec_packsu_cc ----------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned char
vec_packsu_cc(__vector unsigned short __a, __vector unsigned short __b,
int *__cc) {
return __builtin_s390_vpklshs(__a, __b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_packsu_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
return __builtin_s390_vpklsfs(__a, __b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_packsu_cc(__vector unsigned long long __a, __vector unsigned long long __b,
int *__cc) {
return __builtin_s390_vpklsgs(__a, __b, __cc);
}
/*-- vec_unpackh ------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed short
vec_unpackh(__vector signed char __a) {
return __builtin_s390_vuphb(__a);
}
static inline __ATTRS_o_ai __vector __bool short
vec_unpackh(__vector __bool char __a) {
return ((__vector __bool short)
__builtin_s390_vuphb((__vector signed char)__a));
}
static inline __ATTRS_o_ai __vector unsigned short
vec_unpackh(__vector unsigned char __a) {
return __builtin_s390_vuplhb(__a);
}
static inline __ATTRS_o_ai __vector signed int
vec_unpackh(__vector signed short __a) {
return __builtin_s390_vuphh(__a);
}
static inline __ATTRS_o_ai __vector __bool int
vec_unpackh(__vector __bool short __a) {
return (__vector __bool int)__builtin_s390_vuphh((__vector signed short)__a);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_unpackh(__vector unsigned short __a) {
return __builtin_s390_vuplhh(__a);
}
static inline __ATTRS_o_ai __vector signed long long
vec_unpackh(__vector signed int __a) {
return __builtin_s390_vuphf(__a);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_unpackh(__vector __bool int __a) {
return ((__vector __bool long long)
__builtin_s390_vuphf((__vector signed int)__a));
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_unpackh(__vector unsigned int __a) {
return __builtin_s390_vuplhf(__a);
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai __vector signed __int128
vec_unpackh(__vector signed long long __a) {
return (__vector signed __int128)__builtin_s390_vuphg(__a);
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_unpackh(__vector __bool long long __a) {
return ((__vector __bool __int128)
__builtin_s390_vuphg((__vector signed long long)__a));
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_unpackh(__vector unsigned long long __a) {
return (__vector unsigned __int128)__builtin_s390_vuplhg(__a);
}
#endif
/*-- vec_unpackl ------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed short
vec_unpackl(__vector signed char __a) {
return __builtin_s390_vuplb(__a);
}
static inline __ATTRS_o_ai __vector __bool short
vec_unpackl(__vector __bool char __a) {
return ((__vector __bool short)
__builtin_s390_vuplb((__vector signed char)__a));
}
static inline __ATTRS_o_ai __vector unsigned short
vec_unpackl(__vector unsigned char __a) {
return __builtin_s390_vupllb(__a);
}
static inline __ATTRS_o_ai __vector signed int
vec_unpackl(__vector signed short __a) {
return __builtin_s390_vuplhw(__a);
}
static inline __ATTRS_o_ai __vector __bool int
vec_unpackl(__vector __bool short __a) {
return ((__vector __bool int)
__builtin_s390_vuplhw((__vector signed short)__a));
}
static inline __ATTRS_o_ai __vector unsigned int
vec_unpackl(__vector unsigned short __a) {
return __builtin_s390_vupllh(__a);
}
static inline __ATTRS_o_ai __vector signed long long
vec_unpackl(__vector signed int __a) {
return __builtin_s390_vuplf(__a);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_unpackl(__vector __bool int __a) {
return ((__vector __bool long long)
__builtin_s390_vuplf((__vector signed int)__a));
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_unpackl(__vector unsigned int __a) {
return __builtin_s390_vupllf(__a);
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai __vector signed __int128
vec_unpackl(__vector signed long long __a) {
return (__vector signed __int128)__builtin_s390_vuplg(__a);
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_unpackl(__vector __bool long long __a) {
return ((__vector __bool __int128)
__builtin_s390_vuplg((__vector signed long long)__a));
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_unpackl(__vector unsigned long long __a) {
return (__vector unsigned __int128)__builtin_s390_vupllg(__a);
}
#endif
/*-- vec_cmpeq --------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector __bool char __a, __vector __bool char __b) {
return (__vector __bool char)(__a == __b);
}
static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector signed char __a, __vector signed char __b) {
return (__vector __bool char)(__a == __b);
}
static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector unsigned char __a, __vector unsigned char __b) {
return (__vector __bool char)(__a == __b);
}
static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector __bool short __a, __vector __bool short __b) {
return (__vector __bool short)(__a == __b);
}
static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector signed short __a, __vector signed short __b) {
return (__vector __bool short)(__a == __b);
}
static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector unsigned short __a, __vector unsigned short __b) {
return (__vector __bool short)(__a == __b);
}
static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector __bool int __a, __vector __bool int __b) {
return (__vector __bool int)(__a == __b);
}
static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector signed int __a, __vector signed int __b) {
return (__vector __bool int)(__a == __b);
}
static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector unsigned int __a, __vector unsigned int __b) {
return (__vector __bool int)(__a == __b);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector __bool long long __a, __vector __bool long long __b) {
return (__vector __bool long long)(__a == __b);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector signed long long __a, __vector signed long long __b) {
return (__vector __bool long long)(__a == __b);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector unsigned long long __a, __vector unsigned long long __b) {
return (__vector __bool long long)(__a == __b);
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpeq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
return (__vector __bool __int128)(__a == __b);
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpeq(__vector signed __int128 __a, __vector signed __int128 __b) {
return (__vector __bool __int128)(__a == __b);
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpeq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return (__vector __bool __int128)(__a == __b);
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector float __a, __vector float __b) {
return (__vector __bool int)(__a == __b);
}
#endif
static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector double __a, __vector double __b) {
return (__vector __bool long long)(__a == __b);
}
/*-- vec_cmpge --------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector __bool char
vec_cmpge(__vector signed char __a, __vector signed char __b) {
return (__vector __bool char)(__a >= __b);
}
static inline __ATTRS_o_ai __vector __bool char
vec_cmpge(__vector unsigned char __a, __vector unsigned char __b) {
return (__vector __bool char)(__a >= __b);
}
static inline __ATTRS_o_ai __vector __bool short
vec_cmpge(__vector signed short __a, __vector signed short __b) {
return (__vector __bool short)(__a >= __b);
}
static inline __ATTRS_o_ai __vector __bool short
vec_cmpge(__vector unsigned short __a, __vector unsigned short __b) {
return (__vector __bool short)(__a >= __b);
}
static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector signed int __a, __vector signed int __b) {
return (__vector __bool int)(__a >= __b);
}
static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector unsigned int __a, __vector unsigned int __b) {
return (__vector __bool int)(__a >= __b);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector signed long long __a, __vector signed long long __b) {
return (__vector __bool long long)(__a >= __b);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector unsigned long long __a, __vector unsigned long long __b) {
return (__vector __bool long long)(__a >= __b);
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpge(__vector signed __int128 __a, __vector signed __int128 __b) {
return (__vector __bool __int128)(__a >= __b);
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return (__vector __bool __int128)(__a >= __b);
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector float __a, __vector float __b) {
return (__vector __bool int)(__a >= __b);
}
#endif
static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector double __a, __vector double __b) {
return (__vector __bool long long)(__a >= __b);
}
/*-- vec_cmpgt --------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector __bool char
vec_cmpgt(__vector signed char __a, __vector signed char __b) {
return (__vector __bool char)(__a > __b);
}
static inline __ATTRS_o_ai __vector __bool char
vec_cmpgt(__vector unsigned char __a, __vector unsigned char __b) {
return (__vector __bool char)(__a > __b);
}
static inline __ATTRS_o_ai __vector __bool short
vec_cmpgt(__vector signed short __a, __vector signed short __b) {
return (__vector __bool short)(__a > __b);
}
static inline __ATTRS_o_ai __vector __bool short
vec_cmpgt(__vector unsigned short __a, __vector unsigned short __b) {
return (__vector __bool short)(__a > __b);
}
static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector signed int __a, __vector signed int __b) {
return (__vector __bool int)(__a > __b);
}
static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector unsigned int __a, __vector unsigned int __b) {
return (__vector __bool int)(__a > __b);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector signed long long __a, __vector signed long long __b) {
return (__vector __bool long long)(__a > __b);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector unsigned long long __a, __vector unsigned long long __b) {
return (__vector __bool long long)(__a > __b);
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpgt(__vector signed __int128 __a, __vector signed __int128 __b) {
return (__vector __bool __int128)(__a > __b);
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpgt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return (__vector __bool __int128)(__a > __b);
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector float __a, __vector float __b) {
return (__vector __bool int)(__a > __b);
}
#endif
static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector double __a, __vector double __b) {
return (__vector __bool long long)(__a > __b);
}
/*-- vec_cmple --------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector __bool char
vec_cmple(__vector signed char __a, __vector signed char __b) {
return (__vector __bool char)(__a <= __b);
}
static inline __ATTRS_o_ai __vector __bool char
vec_cmple(__vector unsigned char __a, __vector unsigned char __b) {
return (__vector __bool char)(__a <= __b);
}
static inline __ATTRS_o_ai __vector __bool short
vec_cmple(__vector signed short __a, __vector signed short __b) {
return (__vector __bool short)(__a <= __b);
}
static inline __ATTRS_o_ai __vector __bool short
vec_cmple(__vector unsigned short __a, __vector unsigned short __b) {
return (__vector __bool short)(__a <= __b);
}
static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector signed int __a, __vector signed int __b) {
return (__vector __bool int)(__a <= __b);
}
static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector unsigned int __a, __vector unsigned int __b) {
return (__vector __bool int)(__a <= __b);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector signed long long __a, __vector signed long long __b) {
return (__vector __bool long long)(__a <= __b);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector unsigned long long __a, __vector unsigned long long __b) {
return (__vector __bool long long)(__a <= __b);
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_cmple(__vector signed __int128 __a, __vector signed __int128 __b) {
return (__vector __bool __int128)(__a <= __b);
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_cmple(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return (__vector __bool __int128)(__a <= __b);
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector float __a, __vector float __b) {
return (__vector __bool int)(__a <= __b);
}
#endif
static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector double __a, __vector double __b) {
return (__vector __bool long long)(__a <= __b);
}
/*-- vec_cmplt --------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector __bool char
vec_cmplt(__vector signed char __a, __vector signed char __b) {
return (__vector __bool char)(__a < __b);
}
static inline __ATTRS_o_ai __vector __bool char
vec_cmplt(__vector unsigned char __a, __vector unsigned char __b) {
return (__vector __bool char)(__a < __b);
}
static inline __ATTRS_o_ai __vector __bool short
vec_cmplt(__vector signed short __a, __vector signed short __b) {
return (__vector __bool short)(__a < __b);
}
static inline __ATTRS_o_ai __vector __bool short
vec_cmplt(__vector unsigned short __a, __vector unsigned short __b) {
return (__vector __bool short)(__a < __b);
}
static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector signed int __a, __vector signed int __b) {
return (__vector __bool int)(__a < __b);
}
static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector unsigned int __a, __vector unsigned int __b) {
return (__vector __bool int)(__a < __b);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector signed long long __a, __vector signed long long __b) {
return (__vector __bool long long)(__a < __b);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector unsigned long long __a, __vector unsigned long long __b) {
return (__vector __bool long long)(__a < __b);
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_cmplt(__vector signed __int128 __a, __vector signed __int128 __b) {
return (__vector __bool __int128)(__a < __b);
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_cmplt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return (__vector __bool __int128)(__a < __b);
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector float __a, __vector float __b) {
return (__vector __bool int)(__a < __b);
}
#endif
static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector double __a, __vector double __b) {
return (__vector __bool long long)(__a < __b);
}
/*-- vec_all_eq -------------------------------------------------------------*/
static inline __ATTRS_o_ai int
vec_all_eq(__vector signed char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_eq(__vector signed char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vceqbs(__a, __b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_eq(__vector signed short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_eq(__vector signed short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vceqhs(__a, __b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_eq(__vector signed int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_eq(__vector signed int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vceqfs(__a, __b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_eq(__vector signed long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_eq(__vector signed long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vceqgs(__a, __b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc == 0;
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai int
vec_all_eq(__vector signed __int128 __a, __vector signed __int128 __b) {
int __cc;
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
int __cc;
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
int __cc;
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
return __cc == 0;
}
#endif
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_all_eq(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfcesbs(__a, __b, &__cc);
return __cc == 0;
}
#endif
static inline __ATTRS_o_ai int
vec_all_eq(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfcedbs(__a, __b, &__cc);
return __cc == 0;
}
/*-- vec_all_ne -------------------------------------------------------------*/
static inline __ATTRS_o_ai int
vec_all_ne(__vector signed char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ne(__vector signed char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ne(__vector signed short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ne(__vector signed short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vceqhs(__a, __b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ne(__vector signed int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ne(__vector signed int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vceqfs(__a, __b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ne(__vector signed long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ne(__vector signed long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vceqgs(__a, __b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc == 3;
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai int
vec_all_ne(__vector signed __int128 __a, __vector signed __int128 __b) {
int __cc;
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
int __cc;
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool __int128 __a, __vector __bool __int128 __b) {
int __cc;
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
return __cc == 3;
}
#endif
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_all_ne(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfcesbs(__a, __b, &__cc);
return __cc == 3;
}
#endif
static inline __ATTRS_o_ai int
vec_all_ne(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfcedbs(__a, __b, &__cc);
return __cc == 3;
}
/*-- vec_all_ge -------------------------------------------------------------*/
static inline __ATTRS_o_ai int
vec_all_ge(__vector signed char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vchbs(__b, __a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector signed char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vchlbs(__b, __a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchlbs((__vector unsigned char)__b,
(__vector unsigned char)__a, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ge(__vector signed short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vchhs(__b, __a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector signed short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vchlhs(__b, __a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchlhs((__vector unsigned short)__b,
(__vector unsigned short)__a, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ge(__vector signed int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vchfs(__b, __a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector signed int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vchlfs(__b, __a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchlfs((__vector unsigned int)__b,
(__vector unsigned int)__a, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ge(__vector signed long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vchgs(__b, __a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector signed long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vchlgs(__b, __a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchlgs((__vector unsigned long long)__b,
(__vector unsigned long long)__a, &__cc);
return __cc == 3;
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai int
vec_all_ge(__vector signed __int128 __a, __vector signed __int128 __b) {
int __cc;
__builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
int __cc;
__builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
return __cc == 3;
}
#endif
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_all_ge(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfchesbs(__a, __b, &__cc);
return __cc == 0;
}
#endif
static inline __ATTRS_o_ai int
vec_all_ge(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfchedbs(__a, __b, &__cc);
return __cc == 0;
}
/*-- vec_all_gt -------------------------------------------------------------*/
static inline __ATTRS_o_ai int
vec_all_gt(__vector signed char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vchbs(__a, __b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector signed char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vchlbs(__a, __b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchlbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_gt(__vector signed short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vchhs(__a, __b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector signed short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vchlhs(__a, __b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchlhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_gt(__vector signed int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vchfs(__a, __b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector signed int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vchlfs(__a, __b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchlfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_gt(__vector signed long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vchgs(__a, __b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector signed long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vchlgs(__a, __b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchlgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc == 0;
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai int
vec_all_gt(__vector signed __int128 __a, __vector signed __int128 __b) {
int __cc;
__builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
int __cc;
__builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
return __cc == 0;
}
#endif
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_all_gt(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfchsbs(__a, __b, &__cc);
return __cc == 0;
}
#endif
static inline __ATTRS_o_ai int
vec_all_gt(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfchdbs(__a, __b, &__cc);
return __cc == 0;
}
/*-- vec_all_le -------------------------------------------------------------*/
static inline __ATTRS_o_ai int
vec_all_le(__vector signed char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vchbs(__a, __b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector signed char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vchlbs(__a, __b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchlbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_le(__vector signed short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vchhs(__a, __b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector signed short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vchlhs(__a, __b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchlhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_le(__vector signed int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vchfs(__a, __b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector signed int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vchlfs(__a, __b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchlfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_le(__vector signed long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vchgs(__a, __b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector signed long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vchlgs(__a, __b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
return __cc == 3;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchlgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc == 3;
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai int
vec_all_le(__vector signed __int128 __a, __vector signed __int128 __b) {
int __cc;
__builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
return __cc == 3;
}
static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
int __cc;
__builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
return __cc == 3;
}
#endif
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_all_le(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfchesbs(__b, __a, &__cc);
return __cc == 0;
}
#endif
static inline __ATTRS_o_ai int
vec_all_le(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfchedbs(__b, __a, &__cc);
return __cc == 0;
}
/*-- vec_all_lt -------------------------------------------------------------*/
static inline __ATTRS_o_ai int
vec_all_lt(__vector signed char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vchbs(__b, __a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector signed char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vchlbs(__b, __a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchlbs((__vector unsigned char)__b,
(__vector unsigned char)__a, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_lt(__vector signed short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vchhs(__b, __a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector signed short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vchlhs(__b, __a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchlhs((__vector unsigned short)__b,
(__vector unsigned short)__a, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_lt(__vector signed int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vchfs(__b, __a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector signed int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vchlfs(__b, __a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchlfs((__vector unsigned int)__b,
(__vector unsigned int)__a, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_lt(__vector signed long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vchgs(__b, __a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector signed long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vchlgs(__b, __a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
return __cc == 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchlgs((__vector unsigned long long)__b,
(__vector unsigned long long)__a, &__cc);
return __cc == 0;
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai int
vec_all_lt(__vector signed __int128 __a, __vector signed __int128 __b) {
int __cc;
__builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
return __cc == 0;
}
static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
int __cc;
__builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
return __cc == 0;
}
#endif
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_all_lt(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfchsbs(__b, __a, &__cc);
return __cc == 0;
}
#endif
static inline __ATTRS_o_ai int
vec_all_lt(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfchdbs(__b, __a, &__cc);
return __cc == 0;
}
/*-- vec_all_nge ------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_all_nge(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfchesbs(__a, __b, &__cc);
return __cc == 3;
}
#endif
static inline __ATTRS_o_ai int
vec_all_nge(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfchedbs(__a, __b, &__cc);
return __cc == 3;
}
/*-- vec_all_ngt ------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_all_ngt(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfchsbs(__a, __b, &__cc);
return __cc == 3;
}
#endif
static inline __ATTRS_o_ai int
vec_all_ngt(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfchdbs(__a, __b, &__cc);
return __cc == 3;
}
/*-- vec_all_nle ------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_all_nle(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfchesbs(__b, __a, &__cc);
return __cc == 3;
}
#endif
static inline __ATTRS_o_ai int
vec_all_nle(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfchedbs(__b, __a, &__cc);
return __cc == 3;
}
/*-- vec_all_nlt ------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_all_nlt(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfchsbs(__b, __a, &__cc);
return __cc == 3;
}
#endif
static inline __ATTRS_o_ai int
vec_all_nlt(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfchdbs(__b, __a, &__cc);
return __cc == 3;
}
/*-- vec_all_nan ------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_all_nan(__vector float __a) {
int __cc;
__builtin_s390_vftcisb(__a, 15, &__cc);
return __cc == 0;
}
#endif
static inline __ATTRS_o_ai int
vec_all_nan(__vector double __a) {
int __cc;
__builtin_s390_vftcidb(__a, 15, &__cc);
return __cc == 0;
}
/*-- vec_all_numeric --------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_all_numeric(__vector float __a) {
int __cc;
__builtin_s390_vftcisb(__a, 15, &__cc);
return __cc == 3;
}
#endif
static inline __ATTRS_o_ai int
vec_all_numeric(__vector double __a) {
int __cc;
__builtin_s390_vftcidb(__a, 15, &__cc);
return __cc == 3;
}
/*-- vec_any_eq -------------------------------------------------------------*/
static inline __ATTRS_o_ai int
vec_any_eq(__vector signed char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_eq(__vector signed char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vceqbs(__a, __b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_eq(__vector signed short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_eq(__vector signed short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vceqhs(__a, __b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_eq(__vector signed int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_eq(__vector signed int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vceqfs(__a, __b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_eq(__vector signed long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_eq(__vector signed long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vceqgs(__a, __b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc <= 1;
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai int
vec_any_eq(__vector signed __int128 __a, __vector signed __int128 __b) {
int __cc;
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
int __cc;
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
int __cc;
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
return __cc <= 1;
}
#endif
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_any_eq(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfcesbs(__a, __b, &__cc);
return __cc <= 1;
}
#endif
static inline __ATTRS_o_ai int
vec_any_eq(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfcedbs(__a, __b, &__cc);
return __cc <= 1;
}
/*-- vec_any_ne -------------------------------------------------------------*/
static inline __ATTRS_o_ai int
vec_any_ne(__vector signed char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ne(__vector signed char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vceqbs(__a, __b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vceqbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ne(__vector signed short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ne(__vector signed short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vceqhs(__a, __b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vceqhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ne(__vector signed int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ne(__vector signed int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vceqfs(__a, __b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vceqfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ne(__vector signed long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ne(__vector signed long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vceqgs(__a, __b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vceqgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc != 0;
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai int
vec_any_ne(__vector signed __int128 __a, __vector signed __int128 __b) {
int __cc;
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
int __cc;
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool __int128 __a, __vector __bool __int128 __b) {
int __cc;
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
return __cc != 0;
}
#endif
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_any_ne(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfcesbs(__a, __b, &__cc);
return __cc != 0;
}
#endif
static inline __ATTRS_o_ai int
vec_any_ne(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfcedbs(__a, __b, &__cc);
return __cc != 0;
}
/*-- vec_any_ge -------------------------------------------------------------*/
static inline __ATTRS_o_ai int
vec_any_ge(__vector signed char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vchbs(__b, __a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector signed char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vchlbs(__b, __a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchlbs((__vector unsigned char)__b,
(__vector unsigned char)__a, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ge(__vector signed short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vchhs(__b, __a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector signed short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vchlhs(__b, __a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchlhs((__vector unsigned short)__b,
(__vector unsigned short)__a, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ge(__vector signed int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vchfs(__b, __a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector signed int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vchlfs(__b, __a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchlfs((__vector unsigned int)__b,
(__vector unsigned int)__a, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ge(__vector signed long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vchgs(__b, __a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector signed long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vchlgs(__b, __a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchlgs((__vector unsigned long long)__b,
(__vector unsigned long long)__a, &__cc);
return __cc != 0;
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai int
vec_any_ge(__vector signed __int128 __a, __vector signed __int128 __b) {
int __cc;
__builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
int __cc;
__builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
return __cc != 0;
}
#endif
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_any_ge(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfchesbs(__a, __b, &__cc);
return __cc <= 1;
}
#endif
static inline __ATTRS_o_ai int
vec_any_ge(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfchedbs(__a, __b, &__cc);
return __cc <= 1;
}
/*-- vec_any_gt -------------------------------------------------------------*/
static inline __ATTRS_o_ai int
vec_any_gt(__vector signed char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vchbs(__a, __b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector signed char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vchlbs(__a, __b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchlbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_gt(__vector signed short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vchhs(__a, __b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector signed short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vchlhs(__a, __b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchlhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_gt(__vector signed int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vchfs(__a, __b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector signed int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vchlfs(__a, __b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchlfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_gt(__vector signed long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vchgs(__a, __b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector signed long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vchlgs(__a, __b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchlgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc <= 1;
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai int
vec_any_gt(__vector signed __int128 __a, __vector signed __int128 __b) {
int __cc;
__builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
int __cc;
__builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
return __cc <= 1;
}
#endif
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_any_gt(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfchsbs(__a, __b, &__cc);
return __cc <= 1;
}
#endif
static inline __ATTRS_o_ai int
vec_any_gt(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfchdbs(__a, __b, &__cc);
return __cc <= 1;
}
/*-- vec_any_le -------------------------------------------------------------*/
static inline __ATTRS_o_ai int
vec_any_le(__vector signed char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vchbs(__a, __b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector signed char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vchlbs(__a, __b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchlbs((__vector unsigned char)__a,
(__vector unsigned char)__b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_le(__vector signed short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vchhs(__a, __b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector signed short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vchlhs(__a, __b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchlhs((__vector unsigned short)__a,
(__vector unsigned short)__b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_le(__vector signed int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vchfs(__a, __b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector signed int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vchlfs(__a, __b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchlfs((__vector unsigned int)__a,
(__vector unsigned int)__b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_le(__vector signed long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vchgs(__a, __b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector signed long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vchlgs(__a, __b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
return __cc != 0;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchlgs((__vector unsigned long long)__a,
(__vector unsigned long long)__b, &__cc);
return __cc != 0;
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai int
vec_any_le(__vector signed __int128 __a, __vector signed __int128 __b) {
int __cc;
__builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
return __cc != 0;
}
static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
int __cc;
__builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
return __cc != 0;
}
#endif
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_any_le(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfchesbs(__b, __a, &__cc);
return __cc <= 1;
}
#endif
static inline __ATTRS_o_ai int
vec_any_le(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfchedbs(__b, __a, &__cc);
return __cc <= 1;
}
/*-- vec_any_lt -------------------------------------------------------------*/
static inline __ATTRS_o_ai int
vec_any_lt(__vector signed char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vchbs(__b, __a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector signed char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a, __vector signed char __b) {
int __cc;
__builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vchlbs(__b, __a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a, __vector unsigned char __b) {
int __cc;
__builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a, __vector __bool char __b) {
int __cc;
__builtin_s390_vchlbs((__vector unsigned char)__b,
(__vector unsigned char)__a, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_lt(__vector signed short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vchhs(__b, __a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector signed short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a, __vector signed short __b) {
int __cc;
__builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vchlhs(__b, __a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a, __vector unsigned short __b) {
int __cc;
__builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a, __vector __bool short __b) {
int __cc;
__builtin_s390_vchlhs((__vector unsigned short)__b,
(__vector unsigned short)__a, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_lt(__vector signed int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vchfs(__b, __a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector signed int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a, __vector signed int __b) {
int __cc;
__builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vchlfs(__b, __a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a, __vector unsigned int __b) {
int __cc;
__builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a, __vector __bool int __b) {
int __cc;
__builtin_s390_vchlfs((__vector unsigned int)__b,
(__vector unsigned int)__a, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_lt(__vector signed long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vchgs(__b, __a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector signed long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a, __vector signed long long __b) {
int __cc;
__builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vchlgs(__b, __a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a, __vector unsigned long long __b) {
int __cc;
__builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
return __cc <= 1;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a, __vector __bool long long __b) {
int __cc;
__builtin_s390_vchlgs((__vector unsigned long long)__b,
(__vector unsigned long long)__a, &__cc);
return __cc <= 1;
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai int
vec_any_lt(__vector signed __int128 __a, __vector signed __int128 __b) {
int __cc;
__builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
return __cc <= 1;
}
static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
int __cc;
__builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
return __cc <= 1;
}
#endif
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_any_lt(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfchsbs(__b, __a, &__cc);
return __cc <= 1;
}
#endif
static inline __ATTRS_o_ai int
vec_any_lt(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfchdbs(__b, __a, &__cc);
return __cc <= 1;
}
/*-- vec_any_nge ------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_any_nge(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfchesbs(__a, __b, &__cc);
return __cc != 0;
}
#endif
static inline __ATTRS_o_ai int
vec_any_nge(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfchedbs(__a, __b, &__cc);
return __cc != 0;
}
/*-- vec_any_ngt ------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_any_ngt(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfchsbs(__a, __b, &__cc);
return __cc != 0;
}
#endif
static inline __ATTRS_o_ai int
vec_any_ngt(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfchdbs(__a, __b, &__cc);
return __cc != 0;
}
/*-- vec_any_nle ------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_any_nle(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfchesbs(__b, __a, &__cc);
return __cc != 0;
}
#endif
static inline __ATTRS_o_ai int
vec_any_nle(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfchedbs(__b, __a, &__cc);
return __cc != 0;
}
/*-- vec_any_nlt ------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_any_nlt(__vector float __a, __vector float __b) {
int __cc;
__builtin_s390_vfchsbs(__b, __a, &__cc);
return __cc != 0;
}
#endif
static inline __ATTRS_o_ai int
vec_any_nlt(__vector double __a, __vector double __b) {
int __cc;
__builtin_s390_vfchdbs(__b, __a, &__cc);
return __cc != 0;
}
/*-- vec_any_nan ------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_any_nan(__vector float __a) {
int __cc;
__builtin_s390_vftcisb(__a, 15, &__cc);
return __cc != 3;
}
#endif
static inline __ATTRS_o_ai int
vec_any_nan(__vector double __a) {
int __cc;
__builtin_s390_vftcidb(__a, 15, &__cc);
return __cc != 3;
}
/*-- vec_any_numeric --------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_any_numeric(__vector float __a) {
int __cc;
__builtin_s390_vftcisb(__a, 15, &__cc);
return __cc != 0;
}
#endif
static inline __ATTRS_o_ai int
vec_any_numeric(__vector double __a) {
int __cc;
__builtin_s390_vftcidb(__a, 15, &__cc);
return __cc != 0;
}
/*-- vec_blend --------------------------------------------------------------*/
#if __ARCH__ >= 15
static inline __ATTRS_o_ai __vector signed char
vec_blend(__vector signed char __a, __vector signed char __b,
__vector signed char __c) {
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
}
static inline __ATTRS_o_ai __vector __bool char
vec_blend(__vector __bool char __a, __vector __bool char __b,
__vector signed char __c) {
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
}
static inline __ATTRS_o_ai __vector unsigned char
vec_blend(__vector unsigned char __a, __vector unsigned char __b,
__vector signed char __c) {
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
}
static inline __ATTRS_o_ai __vector signed short
vec_blend(__vector signed short __a, __vector signed short __b,
__vector signed short __c) {
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
}
static inline __ATTRS_o_ai __vector __bool short
vec_blend(__vector __bool short __a, __vector __bool short __b,
__vector signed short __c) {
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
}
static inline __ATTRS_o_ai __vector unsigned short
vec_blend(__vector unsigned short __a, __vector unsigned short __b,
__vector signed short __c) {
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
}
static inline __ATTRS_o_ai __vector signed int
vec_blend(__vector signed int __a, __vector signed int __b,
__vector signed int __c) {
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
}
static inline __ATTRS_o_ai __vector __bool int
vec_blend(__vector __bool int __a, __vector __bool int __b,
__vector signed int __c) {
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
}
static inline __ATTRS_o_ai __vector unsigned int
vec_blend(__vector unsigned int __a, __vector unsigned int __b,
__vector signed int __c) {
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
}
static inline __ATTRS_o_ai __vector signed long long
vec_blend(__vector signed long long __a, __vector signed long long __b,
__vector signed long long __c) {
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
}
static inline __ATTRS_o_ai __vector __bool long long
vec_blend(__vector __bool long long __a, __vector __bool long long __b,
__vector signed long long __c) {
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_blend(__vector unsigned long long __a, __vector unsigned long long __b,
__vector signed long long __c) {
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
}
static inline __ATTRS_o_ai __vector signed __int128
vec_blend(__vector signed __int128 __a, __vector signed __int128 __b,
__vector signed __int128 __c) {
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_blend(__vector __bool __int128 __a, __vector __bool __int128 __b,
__vector signed __int128 __c) {
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_blend(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
__vector signed __int128 __c) {
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
}
static inline __ATTRS_o_ai __vector float
vec_blend(__vector float __a, __vector float __b,
__vector signed int __c) {
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
}
static inline __ATTRS_o_ai __vector double
vec_blend(__vector double __a, __vector double __b,
__vector signed long long __c) {
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
}
#endif
/*-- vec_and ---------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector __bool char
vec_and(__vector __bool char __a, __vector __bool char __b) {
return __a & __b;
}
static inline __ATTRS_o_ai __vector signed char
vec_and(__vector signed char __a, __vector signed char __b) {
return __a & __b;
}
static inline __ATTRS_o_ai __vector unsigned char
vec_and(__vector unsigned char __a, __vector unsigned char __b) {
return __a & __b;
}
static inline __ATTRS_o_ai __vector __bool short
vec_and(__vector __bool short __a, __vector __bool short __b) {
return __a & __b;
}
static inline __ATTRS_o_ai __vector signed short
vec_and(__vector signed short __a, __vector signed short __b) {
return __a & __b;
}
static inline __ATTRS_o_ai __vector unsigned short
vec_and(__vector unsigned short __a, __vector unsigned short __b) {
return __a & __b;
}
static inline __ATTRS_o_ai __vector __bool int
vec_and(__vector __bool int __a, __vector __bool int __b) {
return __a & __b;
}
static inline __ATTRS_o_ai __vector signed int
vec_and(__vector signed int __a, __vector signed int __b) {
return __a & __b;
}
static inline __ATTRS_o_ai __vector unsigned int
vec_and(__vector unsigned int __a, __vector unsigned int __b) {
return __a & __b;
}
static inline __ATTRS_o_ai __vector __bool long long
vec_and(__vector __bool long long __a, __vector __bool long long __b) {
return __a & __b;
}
static inline __ATTRS_o_ai __vector signed long long
vec_and(__vector signed long long __a, __vector signed long long __b) {
return __a & __b;
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_and(__vector unsigned long long __a, __vector unsigned long long __b) {
return __a & __b;
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_and(__vector __bool __int128 __a, __vector __bool __int128 __b) {
return __a & __b;
}
static inline __ATTRS_o_ai __vector signed __int128
vec_and(__vector signed __int128 __a, __vector signed __int128 __b) {
return __a & __b;
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_and(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return __a & __b;
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_and(__vector float __a, __vector float __b) {
return (__vector float)((__vector unsigned int)__a &
(__vector unsigned int)__b);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_and(__vector double __a, __vector double __b) {
return (__vector double)((__vector unsigned long long)__a &
(__vector unsigned long long)__b);
}
/*-- vec_or ----------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector __bool char
vec_or(__vector __bool char __a, __vector __bool char __b) {
return __a | __b;
}
static inline __ATTRS_o_ai __vector signed char
vec_or(__vector signed char __a, __vector signed char __b) {
return __a | __b;
}
static inline __ATTRS_o_ai __vector unsigned char
vec_or(__vector unsigned char __a, __vector unsigned char __b) {
return __a | __b;
}
static inline __ATTRS_o_ai __vector __bool short
vec_or(__vector __bool short __a, __vector __bool short __b) {
return __a | __b;
}
static inline __ATTRS_o_ai __vector signed short
vec_or(__vector signed short __a, __vector signed short __b) {
return __a | __b;
}
static inline __ATTRS_o_ai __vector unsigned short
vec_or(__vector unsigned short __a, __vector unsigned short __b) {
return __a | __b;
}
static inline __ATTRS_o_ai __vector __bool int
vec_or(__vector __bool int __a, __vector __bool int __b) {
return __a | __b;
}
static inline __ATTRS_o_ai __vector signed int
vec_or(__vector signed int __a, __vector signed int __b) {
return __a | __b;
}
static inline __ATTRS_o_ai __vector unsigned int
vec_or(__vector unsigned int __a, __vector unsigned int __b) {
return __a | __b;
}
static inline __ATTRS_o_ai __vector __bool long long
vec_or(__vector __bool long long __a, __vector __bool long long __b) {
return __a | __b;
}
static inline __ATTRS_o_ai __vector signed long long
vec_or(__vector signed long long __a, __vector signed long long __b) {
return __a | __b;
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_or(__vector unsigned long long __a, __vector unsigned long long __b) {
return __a | __b;
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_or(__vector __bool __int128 __a, __vector __bool __int128 __b) {
return __a | __b;
}
static inline __ATTRS_o_ai __vector signed __int128
vec_or(__vector signed __int128 __a, __vector signed __int128 __b) {
return __a | __b;
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_or(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return __a | __b;
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_or(__vector float __a, __vector float __b) {
return (__vector float)((__vector unsigned int)__a |
(__vector unsigned int)__b);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_or(__vector double __a, __vector double __b) {
return (__vector double)((__vector unsigned long long)__a |
(__vector unsigned long long)__b);
}
/*-- vec_xor ----------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector __bool char
vec_xor(__vector __bool char __a, __vector __bool char __b) {
return __a ^ __b;
}
static inline __ATTRS_o_ai __vector signed char
vec_xor(__vector signed char __a, __vector signed char __b) {
return __a ^ __b;
}
static inline __ATTRS_o_ai __vector unsigned char
vec_xor(__vector unsigned char __a, __vector unsigned char __b) {
return __a ^ __b;
}
static inline __ATTRS_o_ai __vector __bool short
vec_xor(__vector __bool short __a, __vector __bool short __b) {
return __a ^ __b;
}
static inline __ATTRS_o_ai __vector signed short
vec_xor(__vector signed short __a, __vector signed short __b) {
return __a ^ __b;
}
static inline __ATTRS_o_ai __vector unsigned short
vec_xor(__vector unsigned short __a, __vector unsigned short __b) {
return __a ^ __b;
}
static inline __ATTRS_o_ai __vector __bool int
vec_xor(__vector __bool int __a, __vector __bool int __b) {
return __a ^ __b;
}
static inline __ATTRS_o_ai __vector signed int
vec_xor(__vector signed int __a, __vector signed int __b) {
return __a ^ __b;
}
static inline __ATTRS_o_ai __vector unsigned int
vec_xor(__vector unsigned int __a, __vector unsigned int __b) {
return __a ^ __b;
}
static inline __ATTRS_o_ai __vector __bool long long
vec_xor(__vector __bool long long __a, __vector __bool long long __b) {
return __a ^ __b;
}
static inline __ATTRS_o_ai __vector signed long long
vec_xor(__vector signed long long __a, __vector signed long long __b) {
return __a ^ __b;
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_xor(__vector unsigned long long __a, __vector unsigned long long __b) {
return __a ^ __b;
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_xor(__vector __bool __int128 __a, __vector __bool __int128 __b) {
return __a ^ __b;
}
static inline __ATTRS_o_ai __vector signed __int128
vec_xor(__vector signed __int128 __a, __vector signed __int128 __b) {
return __a ^ __b;
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_xor(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return __a ^ __b;
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_xor(__vector float __a, __vector float __b) {
return (__vector float)((__vector unsigned int)__a ^
(__vector unsigned int)__b);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_xor(__vector double __a, __vector double __b) {
return (__vector double)((__vector unsigned long long)__a ^
(__vector unsigned long long)__b);
}
/*-- vec_andc ---------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector __bool char
vec_andc(__vector __bool char __a, __vector __bool char __b) {
return __a & ~__b;
}
static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector signed char __a, __vector signed char __b) {
return __a & ~__b;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector __bool char __a, __vector signed char __b) {
return __a & ~__b;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector signed char __a, __vector __bool char __b) {
return __a & ~__b;
}
static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector unsigned char __a, __vector unsigned char __b) {
return __a & ~__b;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector __bool char __a, __vector unsigned char __b) {
return __a & ~__b;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector unsigned char __a, __vector __bool char __b) {
return __a & ~__b;
}
static inline __ATTRS_o_ai __vector __bool short
vec_andc(__vector __bool short __a, __vector __bool short __b) {
return __a & ~__b;
}
static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector signed short __a, __vector signed short __b) {
return __a & ~__b;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector __bool short __a, __vector signed short __b) {
return __a & ~__b;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector signed short __a, __vector __bool short __b) {
return __a & ~__b;
}
static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector unsigned short __a, __vector unsigned short __b) {
return __a & ~__b;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector __bool short __a, __vector unsigned short __b) {
return __a & ~__b;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector unsigned short __a, __vector __bool short __b) {
return __a & ~__b;
}
static inline __ATTRS_o_ai __vector __bool int
vec_andc(__vector __bool int __a, __vector __bool int __b) {
return __a & ~__b;
}
static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector signed int __a, __vector signed int __b) {
return __a & ~__b;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector __bool int __a, __vector signed int __b) {
return __a & ~__b;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector signed int __a, __vector __bool int __b) {
return __a & ~__b;
}
static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector unsigned int __a, __vector unsigned int __b) {
return __a & ~__b;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector __bool int __a, __vector unsigned int __b) {
return __a & ~__b;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector unsigned int __a, __vector __bool int __b) {
return __a & ~__b;
}
static inline __ATTRS_o_ai __vector __bool long long
vec_andc(__vector __bool long long __a, __vector __bool long long __b) {
return __a & ~__b;
}
static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector signed long long __a, __vector signed long long __b) {
return __a & ~__b;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector __bool long long __a, __vector signed long long __b) {
return __a & ~__b;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector signed long long __a, __vector __bool long long __b) {
return __a & ~__b;
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector unsigned long long __a, __vector unsigned long long __b) {
return __a & ~__b;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector __bool long long __a, __vector unsigned long long __b) {
return __a & ~__b;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector unsigned long long __a, __vector __bool long long __b) {
return __a & ~__b;
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_andc(__vector __bool __int128 __a, __vector __bool __int128 __b) {
return __a & ~__b;
}
static inline __ATTRS_o_ai __vector signed __int128
vec_andc(__vector signed __int128 __a, __vector signed __int128 __b) {
return __a & ~__b;
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_andc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return __a & ~__b;
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_andc(__vector float __a, __vector float __b) {
return (__vector float)((__vector unsigned int)__a &
~(__vector unsigned int)__b);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_andc(__vector double __a, __vector double __b) {
return (__vector double)((__vector unsigned long long)__a &
~(__vector unsigned long long)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector double
vec_andc(__vector __bool long long __a, __vector double __b) {
return (__vector double)((__vector unsigned long long)__a &
~(__vector unsigned long long)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector double
vec_andc(__vector double __a, __vector __bool long long __b) {
return (__vector double)((__vector unsigned long long)__a &
~(__vector unsigned long long)__b);
}
/*-- vec_nor ----------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector __bool char
vec_nor(__vector __bool char __a, __vector __bool char __b) {
return ~(__a | __b);
}
static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector signed char __a, __vector signed char __b) {
return ~(__a | __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector __bool char __a, __vector signed char __b) {
return ~(__a | __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector signed char __a, __vector __bool char __b) {
return ~(__a | __b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector unsigned char __a, __vector unsigned char __b) {
return ~(__a | __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector __bool char __a, __vector unsigned char __b) {
return ~(__a | __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector unsigned char __a, __vector __bool char __b) {
return ~(__a | __b);
}
static inline __ATTRS_o_ai __vector __bool short
vec_nor(__vector __bool short __a, __vector __bool short __b) {
return ~(__a | __b);
}
static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector signed short __a, __vector signed short __b) {
return ~(__a | __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector __bool short __a, __vector signed short __b) {
return ~(__a | __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector signed short __a, __vector __bool short __b) {
return ~(__a | __b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector unsigned short __a, __vector unsigned short __b) {
return ~(__a | __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector __bool short __a, __vector unsigned short __b) {
return ~(__a | __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector unsigned short __a, __vector __bool short __b) {
return ~(__a | __b);
}
static inline __ATTRS_o_ai __vector __bool int
vec_nor(__vector __bool int __a, __vector __bool int __b) {
return ~(__a | __b);
}
static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector signed int __a, __vector signed int __b) {
return ~(__a | __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector __bool int __a, __vector signed int __b) {
return ~(__a | __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector signed int __a, __vector __bool int __b) {
return ~(__a | __b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector unsigned int __a, __vector unsigned int __b) {
return ~(__a | __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector __bool int __a, __vector unsigned int __b) {
return ~(__a | __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector unsigned int __a, __vector __bool int __b) {
return ~(__a | __b);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_nor(__vector __bool long long __a, __vector __bool long long __b) {
return ~(__a | __b);
}
static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector signed long long __a, __vector signed long long __b) {
return ~(__a | __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector __bool long long __a, __vector signed long long __b) {
return ~(__a | __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector signed long long __a, __vector __bool long long __b) {
return ~(__a | __b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector unsigned long long __a, __vector unsigned long long __b) {
return ~(__a | __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector __bool long long __a, __vector unsigned long long __b) {
return ~(__a | __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector unsigned long long __a, __vector __bool long long __b) {
return ~(__a | __b);
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_nor(__vector __bool __int128 __a, __vector __bool __int128 __b) {
return ~(__a | __b);
}
static inline __ATTRS_o_ai __vector signed __int128
vec_nor(__vector signed __int128 __a, __vector signed __int128 __b) {
return ~(__a | __b);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_nor(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return ~(__a | __b);
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_nor(__vector float __a, __vector float __b) {
return (__vector float)~((__vector unsigned int)__a |
(__vector unsigned int)__b);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_nor(__vector double __a, __vector double __b) {
return (__vector double)~((__vector unsigned long long)__a |
(__vector unsigned long long)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector double
vec_nor(__vector __bool long long __a, __vector double __b) {
return (__vector double)~((__vector unsigned long long)__a |
(__vector unsigned long long)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector double
vec_nor(__vector double __a, __vector __bool long long __b) {
return (__vector double)~((__vector unsigned long long)__a |
(__vector unsigned long long)__b);
}
/*-- vec_orc ----------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector __bool char
vec_orc(__vector __bool char __a, __vector __bool char __b) {
return __a | ~__b;
}
static inline __ATTRS_o_ai __vector signed char
vec_orc(__vector signed char __a, __vector signed char __b) {
return __a | ~__b;
}
static inline __ATTRS_o_ai __vector unsigned char
vec_orc(__vector unsigned char __a, __vector unsigned char __b) {
return __a | ~__b;
}
static inline __ATTRS_o_ai __vector __bool short
vec_orc(__vector __bool short __a, __vector __bool short __b) {
return __a | ~__b;
}
static inline __ATTRS_o_ai __vector signed short
vec_orc(__vector signed short __a, __vector signed short __b) {
return __a | ~__b;
}
static inline __ATTRS_o_ai __vector unsigned short
vec_orc(__vector unsigned short __a, __vector unsigned short __b) {
return __a | ~__b;
}
static inline __ATTRS_o_ai __vector __bool int
vec_orc(__vector __bool int __a, __vector __bool int __b) {
return __a | ~__b;
}
static inline __ATTRS_o_ai __vector signed int
vec_orc(__vector signed int __a, __vector signed int __b) {
return __a | ~__b;
}
static inline __ATTRS_o_ai __vector unsigned int
vec_orc(__vector unsigned int __a, __vector unsigned int __b) {
return __a | ~__b;
}
static inline __ATTRS_o_ai __vector __bool long long
vec_orc(__vector __bool long long __a, __vector __bool long long __b) {
return __a | ~__b;
}
static inline __ATTRS_o_ai __vector signed long long
vec_orc(__vector signed long long __a, __vector signed long long __b) {
return __a | ~__b;
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_orc(__vector unsigned long long __a, __vector unsigned long long __b) {
return __a | ~__b;
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_orc(__vector __bool __int128 __a, __vector __bool __int128 __b) {
return __a | ~__b;
}
static inline __ATTRS_o_ai __vector signed __int128
vec_orc(__vector signed __int128 __a, __vector signed __int128 __b) {
return __a | ~__b;
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_orc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return __a | ~__b;
}
static inline __ATTRS_o_ai __vector float
vec_orc(__vector float __a, __vector float __b) {
return (__vector float)((__vector unsigned int)__a |
~(__vector unsigned int)__b);
}
static inline __ATTRS_o_ai __vector double
vec_orc(__vector double __a, __vector double __b) {
return (__vector double)((__vector unsigned long long)__a |
~(__vector unsigned long long)__b);
}
#endif
/*-- vec_nand ---------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector __bool char
vec_nand(__vector __bool char __a, __vector __bool char __b) {
return ~(__a & __b);
}
static inline __ATTRS_o_ai __vector signed char
vec_nand(__vector signed char __a, __vector signed char __b) {
return ~(__a & __b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_nand(__vector unsigned char __a, __vector unsigned char __b) {
return ~(__a & __b);
}
static inline __ATTRS_o_ai __vector __bool short
vec_nand(__vector __bool short __a, __vector __bool short __b) {
return ~(__a & __b);
}
static inline __ATTRS_o_ai __vector signed short
vec_nand(__vector signed short __a, __vector signed short __b) {
return ~(__a & __b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_nand(__vector unsigned short __a, __vector unsigned short __b) {
return ~(__a & __b);
}
static inline __ATTRS_o_ai __vector __bool int
vec_nand(__vector __bool int __a, __vector __bool int __b) {
return ~(__a & __b);
}
static inline __ATTRS_o_ai __vector signed int
vec_nand(__vector signed int __a, __vector signed int __b) {
return ~(__a & __b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_nand(__vector unsigned int __a, __vector unsigned int __b) {
return ~(__a & __b);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_nand(__vector __bool long long __a, __vector __bool long long __b) {
return ~(__a & __b);
}
static inline __ATTRS_o_ai __vector signed long long
vec_nand(__vector signed long long __a, __vector signed long long __b) {
return ~(__a & __b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_nand(__vector unsigned long long __a, __vector unsigned long long __b) {
return ~(__a & __b);
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_nand(__vector __bool __int128 __a, __vector __bool __int128 __b) {
return ~(__a & __b);
}
static inline __ATTRS_o_ai __vector signed __int128
vec_nand(__vector signed __int128 __a, __vector signed __int128 __b) {
return ~(__a & __b);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_nand(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return ~(__a & __b);
}
static inline __ATTRS_o_ai __vector float
vec_nand(__vector float __a, __vector float __b) {
return (__vector float)~((__vector unsigned int)__a &
(__vector unsigned int)__b);
}
static inline __ATTRS_o_ai __vector double
vec_nand(__vector double __a, __vector double __b) {
return (__vector double)~((__vector unsigned long long)__a &
(__vector unsigned long long)__b);
}
#endif
/*-- vec_eqv ----------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector __bool char
vec_eqv(__vector __bool char __a, __vector __bool char __b) {
return ~(__a ^ __b);
}
static inline __ATTRS_o_ai __vector signed char
vec_eqv(__vector signed char __a, __vector signed char __b) {
return ~(__a ^ __b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_eqv(__vector unsigned char __a, __vector unsigned char __b) {
return ~(__a ^ __b);
}
static inline __ATTRS_o_ai __vector __bool short
vec_eqv(__vector __bool short __a, __vector __bool short __b) {
return ~(__a ^ __b);
}
static inline __ATTRS_o_ai __vector signed short
vec_eqv(__vector signed short __a, __vector signed short __b) {
return ~(__a ^ __b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_eqv(__vector unsigned short __a, __vector unsigned short __b) {
return ~(__a ^ __b);
}
static inline __ATTRS_o_ai __vector __bool int
vec_eqv(__vector __bool int __a, __vector __bool int __b) {
return ~(__a ^ __b);
}
static inline __ATTRS_o_ai __vector signed int
vec_eqv(__vector signed int __a, __vector signed int __b) {
return ~(__a ^ __b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_eqv(__vector unsigned int __a, __vector unsigned int __b) {
return ~(__a ^ __b);
}
static inline __ATTRS_o_ai __vector __bool long long
vec_eqv(__vector __bool long long __a, __vector __bool long long __b) {
return ~(__a ^ __b);
}
static inline __ATTRS_o_ai __vector signed long long
vec_eqv(__vector signed long long __a, __vector signed long long __b) {
return ~(__a ^ __b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_eqv(__vector unsigned long long __a, __vector unsigned long long __b) {
return ~(__a ^ __b);
}
static inline __ATTRS_o_ai __vector __bool __int128
vec_eqv(__vector __bool __int128 __a, __vector __bool __int128 __b) {
return ~(__a ^ __b);
}
static inline __ATTRS_o_ai __vector signed __int128
vec_eqv(__vector signed __int128 __a, __vector signed __int128 __b) {
return ~(__a ^ __b);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_eqv(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return ~(__a ^ __b);
}
static inline __ATTRS_o_ai __vector float
vec_eqv(__vector float __a, __vector float __b) {
return (__vector float)~((__vector unsigned int)__a ^
(__vector unsigned int)__b);
}
static inline __ATTRS_o_ai __vector double
vec_eqv(__vector double __a, __vector double __b) {
return (__vector double)~((__vector unsigned long long)__a ^
(__vector unsigned long long)__b);
}
#endif
/*-- vec_evaluate -----------------------------------------------------------*/
#if __ARCH__ >= 15
extern __ATTRS_o __vector signed char
vec_evaluate(__vector signed char __a, __vector signed char __b,
__vector signed char __c, unsigned char __d)
__constant(__d);
extern __ATTRS_o __vector unsigned char
vec_evaluate(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c, unsigned char __d)
__constant(__d);
extern __ATTRS_o __vector __bool char
vec_evaluate(__vector __bool char __a, __vector __bool char __b,
__vector __bool char __c, unsigned char __d)
__constant(__d);
extern __ATTRS_o __vector signed short
vec_evaluate(__vector signed short __a, __vector signed short __b,
__vector signed short __c, unsigned char __d)
__constant(__d);
extern __ATTRS_o __vector unsigned short
vec_evaluate(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned short __c, unsigned char __d)
__constant(__d);
extern __ATTRS_o __vector __bool short
vec_evaluate(__vector __bool short __a, __vector __bool short __b,
__vector __bool short __c, unsigned char __d)
__constant(__d);
extern __ATTRS_o __vector signed int
vec_evaluate(__vector signed int __a, __vector signed int __b,
__vector signed int __c, unsigned char __d)
__constant(__d);
extern __ATTRS_o __vector unsigned int
vec_evaluate(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned int __c, unsigned char __d)
__constant(__d);
extern __ATTRS_o __vector __bool int
vec_evaluate(__vector __bool int __a, __vector __bool int __b,
__vector __bool int __c, unsigned char __d)
__constant(__d);
extern __ATTRS_o __vector signed long long
vec_evaluate(__vector signed long long __a, __vector signed long long __b,
__vector signed long long __c, unsigned char __d)
__constant(__d);
extern __ATTRS_o __vector unsigned long long
vec_evaluate(__vector unsigned long long __a, __vector unsigned long long __b,
__vector unsigned long long __c, unsigned char __d)
__constant(__d);
extern __ATTRS_o __vector __bool long long
vec_evaluate(__vector __bool long long __a, __vector __bool long long __b,
__vector __bool long long __c, unsigned char __d)
__constant(__d);
extern __ATTRS_o __vector signed __int128
vec_evaluate(__vector signed __int128 __a, __vector signed __int128 __b,
__vector signed __int128 __c, unsigned char __d)
__constant(__d);
extern __ATTRS_o __vector unsigned __int128
vec_evaluate(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
__vector unsigned __int128 __c, unsigned char __d)
__constant(__d);
extern __ATTRS_o __vector __bool __int128
vec_evaluate(__vector __bool __int128 __a, __vector __bool __int128 __b,
__vector __bool __int128 __c, unsigned char __d)
__constant(__d);
#define vec_evaluate(A, B, C, D) \
((__typeof__((vec_evaluate)((A), (B), (C), (D)))) \
__builtin_s390_veval((__vector unsigned char)(A), \
(__vector unsigned char)(B), \
(__vector unsigned char)(C), (D)))
#endif
/*-- vec_cntlz --------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned char
vec_cntlz(__vector signed char __a) {
return __builtin_s390_vclzb((__vector unsigned char)__a);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cntlz(__vector unsigned char __a) {
return __builtin_s390_vclzb(__a);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cntlz(__vector signed short __a) {
return __builtin_s390_vclzh((__vector unsigned short)__a);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cntlz(__vector unsigned short __a) {
return __builtin_s390_vclzh(__a);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cntlz(__vector signed int __a) {
return __builtin_s390_vclzf((__vector unsigned int)__a);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cntlz(__vector unsigned int __a) {
return __builtin_s390_vclzf(__a);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_cntlz(__vector signed long long __a) {
return __builtin_s390_vclzg((__vector unsigned long long)__a);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_cntlz(__vector unsigned long long __a) {
return __builtin_s390_vclzg(__a);
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai __vector unsigned __int128
vec_cntlz(__vector signed __int128 __a) {
return (__vector unsigned __int128)
__builtin_s390_vclzq((unsigned __int128)__a);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_cntlz(__vector unsigned __int128 __a) {
return (__vector unsigned __int128)
__builtin_s390_vclzq((unsigned __int128)__a);
}
#endif
/*-- vec_cnttz --------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned char
vec_cnttz(__vector signed char __a) {
return __builtin_s390_vctzb((__vector unsigned char)__a);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cnttz(__vector unsigned char __a) {
return __builtin_s390_vctzb(__a);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cnttz(__vector signed short __a) {
return __builtin_s390_vctzh((__vector unsigned short)__a);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cnttz(__vector unsigned short __a) {
return __builtin_s390_vctzh(__a);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cnttz(__vector signed int __a) {
return __builtin_s390_vctzf((__vector unsigned int)__a);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cnttz(__vector unsigned int __a) {
return __builtin_s390_vctzf(__a);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_cnttz(__vector signed long long __a) {
return __builtin_s390_vctzg((__vector unsigned long long)__a);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_cnttz(__vector unsigned long long __a) {
return __builtin_s390_vctzg(__a);
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai __vector unsigned __int128
vec_cnttz(__vector signed __int128 __a) {
return (__vector unsigned __int128)
__builtin_s390_vctzq((unsigned __int128)__a);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_cnttz(__vector unsigned __int128 __a) {
return (__vector unsigned __int128)
__builtin_s390_vctzq((unsigned __int128)__a);
}
#endif
/*-- vec_popcnt -------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned char
vec_popcnt(__vector signed char __a) {
return __builtin_elementwise_popcount((__vector unsigned char)__a);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_popcnt(__vector unsigned char __a) {
return __builtin_elementwise_popcount(__a);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_popcnt(__vector signed short __a) {
return __builtin_elementwise_popcount((__vector unsigned short)__a);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_popcnt(__vector unsigned short __a) {
return __builtin_elementwise_popcount(__a);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_popcnt(__vector signed int __a) {
return __builtin_elementwise_popcount((__vector unsigned int)__a);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_popcnt(__vector unsigned int __a) {
return __builtin_elementwise_popcount(__a);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_popcnt(__vector signed long long __a) {
return __builtin_elementwise_popcount((__vector unsigned long long)__a);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_popcnt(__vector unsigned long long __a) {
return __builtin_elementwise_popcount(__a);
}
/*-- vec_rl -----------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_rl(__vector signed char __a, __vector unsigned char __b) {
return (__vector signed char)__builtin_s390_verllvb(
(__vector unsigned char)__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_rl(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_verllvb(__a, __b);
}
static inline __ATTRS_o_ai __vector signed short
vec_rl(__vector signed short __a, __vector unsigned short __b) {
return (__vector signed short)__builtin_s390_verllvh(
(__vector unsigned short)__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_rl(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_verllvh(__a, __b);
}
static inline __ATTRS_o_ai __vector signed int
vec_rl(__vector signed int __a, __vector unsigned int __b) {
return (__vector signed int)__builtin_s390_verllvf(
(__vector unsigned int)__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_rl(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_verllvf(__a, __b);
}
static inline __ATTRS_o_ai __vector signed long long
vec_rl(__vector signed long long __a, __vector unsigned long long __b) {
return (__vector signed long long)__builtin_s390_verllvg(
(__vector unsigned long long)__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_rl(__vector unsigned long long __a, __vector unsigned long long __b) {
return __builtin_s390_verllvg(__a, __b);
}
/*-- vec_rli ----------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_rli(__vector signed char __a, unsigned long __b) {
return (__vector signed char)__builtin_s390_verllb(
(__vector unsigned char)__a, (unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_rli(__vector unsigned char __a, unsigned long __b) {
return __builtin_s390_verllb(__a, (unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed short
vec_rli(__vector signed short __a, unsigned long __b) {
return (__vector signed short)__builtin_s390_verllh(
(__vector unsigned short)__a, (unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_rli(__vector unsigned short __a, unsigned long __b) {
return __builtin_s390_verllh(__a, (unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed int
vec_rli(__vector signed int __a, unsigned long __b) {
return (__vector signed int)__builtin_s390_verllf(
(__vector unsigned int)__a, (unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_rli(__vector unsigned int __a, unsigned long __b) {
return __builtin_s390_verllf(__a, (unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed long long
vec_rli(__vector signed long long __a, unsigned long __b) {
return (__vector signed long long)__builtin_s390_verllg(
(__vector unsigned long long)__a, (unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_rli(__vector unsigned long long __a, unsigned long __b) {
return __builtin_s390_verllg(__a, (unsigned char)__b);
}
/*-- vec_rl_mask ------------------------------------------------------------*/
extern __ATTRS_o __vector signed char
vec_rl_mask(__vector signed char __a, __vector unsigned char __b,
unsigned char __c) __constant(__c);
extern __ATTRS_o __vector unsigned char
vec_rl_mask(__vector unsigned char __a, __vector unsigned char __b,
unsigned char __c) __constant(__c);
extern __ATTRS_o __vector signed short
vec_rl_mask(__vector signed short __a, __vector unsigned short __b,
unsigned char __c) __constant(__c);
extern __ATTRS_o __vector unsigned short
vec_rl_mask(__vector unsigned short __a, __vector unsigned short __b,
unsigned char __c) __constant(__c);
extern __ATTRS_o __vector signed int
vec_rl_mask(__vector signed int __a, __vector unsigned int __b,
unsigned char __c) __constant(__c);
extern __ATTRS_o __vector unsigned int
vec_rl_mask(__vector unsigned int __a, __vector unsigned int __b,
unsigned char __c) __constant(__c);
extern __ATTRS_o __vector signed long long
vec_rl_mask(__vector signed long long __a, __vector unsigned long long __b,
unsigned char __c) __constant(__c);
extern __ATTRS_o __vector unsigned long long
vec_rl_mask(__vector unsigned long long __a, __vector unsigned long long __b,
unsigned char __c) __constant(__c);
#define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
__extension__ ({ \
__vector unsigned char __res; \
__vector unsigned char __x = (__vector unsigned char)(X); \
__vector unsigned char __y = (__vector unsigned char)(Y); \
switch (sizeof ((X)[0])) { \
case 1: __res = (__vector unsigned char) __builtin_s390_verimb( \
(__vector unsigned char)__x, (__vector unsigned char)__x, \
(__vector unsigned char)__y, (Z)); break; \
case 2: __res = (__vector unsigned char) __builtin_s390_verimh( \
(__vector unsigned short)__x, (__vector unsigned short)__x, \
(__vector unsigned short)__y, (Z)); break; \
case 4: __res = (__vector unsigned char) __builtin_s390_verimf( \
(__vector unsigned int)__x, (__vector unsigned int)__x, \
(__vector unsigned int)__y, (Z)); break; \
default: __res = (__vector unsigned char) __builtin_s390_verimg( \
(__vector unsigned long long)__x, (__vector unsigned long long)__x, \
(__vector unsigned long long)__y, (Z)); break; \
} __res; }))
/*-- vec_sll ----------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a, __vector unsigned char __b) {
return (__vector signed char)__builtin_s390_vsl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a, __vector unsigned short __b) {
return (__vector signed char)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a, __vector unsigned int __b) {
return (__vector signed char)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a, __vector unsigned char __b) {
return (__vector __bool char)__builtin_s390_vsl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a, __vector unsigned short __b) {
return (__vector __bool char)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a, __vector unsigned int __b) {
return (__vector __bool char)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vsl(__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a, __vector unsigned short __b) {
return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a, __vector unsigned int __b) {
return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a, __vector unsigned char __b) {
return (__vector signed short)__builtin_s390_vsl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a, __vector unsigned short __b) {
return (__vector signed short)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a, __vector unsigned int __b) {
return (__vector signed short)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a, __vector unsigned char __b) {
return (__vector __bool short)__builtin_s390_vsl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a, __vector unsigned short __b) {
return (__vector __bool short)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a, __vector unsigned int __b) {
return (__vector __bool short)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a, __vector unsigned char __b) {
return (__vector unsigned short)__builtin_s390_vsl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a, __vector unsigned short __b) {
return (__vector unsigned short)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a, __vector unsigned int __b) {
return (__vector unsigned short)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a, __vector unsigned char __b) {
return (__vector signed int)__builtin_s390_vsl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a, __vector unsigned short __b) {
return (__vector signed int)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a, __vector unsigned int __b) {
return (__vector signed int)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a, __vector unsigned char __b) {
return (__vector __bool int)__builtin_s390_vsl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a, __vector unsigned short __b) {
return (__vector __bool int)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a, __vector unsigned int __b) {
return (__vector __bool int)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a, __vector unsigned char __b) {
return (__vector unsigned int)__builtin_s390_vsl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a, __vector unsigned short __b) {
return (__vector unsigned int)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a, __vector unsigned int __b) {
return (__vector unsigned int)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a, __vector unsigned char __b) {
return (__vector signed long long)__builtin_s390_vsl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a, __vector unsigned short __b) {
return (__vector signed long long)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a, __vector unsigned int __b) {
return (__vector signed long long)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a, __vector unsigned char __b) {
return (__vector __bool long long)__builtin_s390_vsl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a, __vector unsigned short __b) {
return (__vector __bool long long)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a, __vector unsigned int __b) {
return (__vector __bool long long)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a, __vector unsigned char __b) {
return (__vector unsigned long long)__builtin_s390_vsl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a, __vector unsigned short __b) {
return (__vector unsigned long long)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a, __vector unsigned int __b) {
return (__vector unsigned long long)__builtin_s390_vsl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed __int128
vec_sll(__vector signed __int128 __a, __vector unsigned char __b) {
return (__vector signed __int128)__builtin_s390_vsl(
(__vector unsigned char)__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_sll(__vector unsigned __int128 __a, __vector unsigned char __b) {
return (__vector unsigned __int128)__builtin_s390_vsl(
(__vector unsigned char)__a, __b);
}
/*-- vec_slb ----------------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_slb(__vector signed char __a, __vector signed char __b) {
return (__vector signed char)__builtin_s390_vslb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed char
vec_slb(__vector signed char __a, __vector unsigned char __b) {
return (__vector signed char)__builtin_s390_vslb(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_slb(__vector unsigned char __a, __vector signed char __b) {
return __builtin_s390_vslb(__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_slb(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vslb(__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_slb(__vector signed short __a, __vector signed short __b) {
return (__vector signed short)__builtin_s390_vslb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_slb(__vector signed short __a, __vector unsigned short __b) {
return (__vector signed short)__builtin_s390_vslb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed short
vec_slb(__vector signed short __a, __vector unsigned char __b) {
return (__vector signed short)__builtin_s390_vslb(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_slb(__vector unsigned short __a, __vector signed short __b) {
return (__vector unsigned short)__builtin_s390_vslb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_slb(__vector unsigned short __a, __vector unsigned short __b) {
return (__vector unsigned short)__builtin_s390_vslb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_slb(__vector unsigned short __a, __vector unsigned char __b) {
return (__vector unsigned short)__builtin_s390_vslb(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_slb(__vector signed int __a, __vector signed int __b) {
return (__vector signed int)__builtin_s390_vslb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_slb(__vector signed int __a, __vector unsigned int __b) {
return (__vector signed int)__builtin_s390_vslb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed int
vec_slb(__vector signed int __a, __vector unsigned char __b) {
return (__vector signed int)__builtin_s390_vslb(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_slb(__vector unsigned int __a, __vector signed int __b) {
return (__vector unsigned int)__builtin_s390_vslb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_slb(__vector unsigned int __a, __vector unsigned int __b) {
return (__vector unsigned int)__builtin_s390_vslb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_slb(__vector unsigned int __a, __vector unsigned char __b) {
return (__vector unsigned int)__builtin_s390_vslb(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_slb(__vector signed long long __a, __vector signed long long __b) {
return (__vector signed long long)__builtin_s390_vslb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_slb(__vector signed long long __a, __vector unsigned long long __b) {
return (__vector signed long long)__builtin_s390_vslb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed long long
vec_slb(__vector signed long long __a, __vector unsigned char __b) {
return (__vector signed long long)__builtin_s390_vslb(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_slb(__vector unsigned long long __a, __vector signed long long __b) {
return (__vector unsigned long long)__builtin_s390_vslb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_slb(__vector unsigned long long __a, __vector unsigned long long __b) {
return (__vector unsigned long long)__builtin_s390_vslb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_slb(__vector unsigned long long __a, __vector unsigned char __b) {
return (__vector unsigned long long)__builtin_s390_vslb(
(__vector unsigned char)__a, __b);
}
static inline __ATTRS_o_ai __vector signed __int128
vec_slb(__vector signed __int128 __a, __vector unsigned char __b) {
return (__vector signed __int128)__builtin_s390_vslb(
(__vector unsigned char)__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_slb(__vector unsigned __int128 __a, __vector unsigned char __b) {
return (__vector unsigned __int128)__builtin_s390_vslb(
(__vector unsigned char)__a, __b);
}
#if __ARCH__ >= 12
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector float
vec_slb(__vector float __a, __vector signed int __b) {
return (__vector float)__builtin_s390_vslb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector float
vec_slb(__vector float __a, __vector unsigned int __b) {
return (__vector float)__builtin_s390_vslb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector float
vec_slb(__vector float __a, __vector unsigned char __b) {
return (__vector float)__builtin_s390_vslb(
(__vector unsigned char)__a, __b);
}
#endif
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector double
vec_slb(__vector double __a, __vector signed long long __b) {
return (__vector double)__builtin_s390_vslb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector double
vec_slb(__vector double __a, __vector unsigned long long __b) {
return (__vector double)__builtin_s390_vslb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector double
vec_slb(__vector double __a, __vector unsigned char __b) {
return (__vector double)__builtin_s390_vslb(
(__vector unsigned char)__a, __b);
}
/*-- vec_sld ----------------------------------------------------------------*/
extern __ATTRS_o __vector signed char
vec_sld(__vector signed char __a, __vector signed char __b, int __c)
__constant_range(__c, 0, 15);
// This prototype is deprecated.
extern __ATTRS_o __vector __bool char
vec_sld(__vector __bool char __a, __vector __bool char __b, int __c)
__constant_range(__c, 0, 15);
extern __ATTRS_o __vector unsigned char
vec_sld(__vector unsigned char __a, __vector unsigned char __b, int __c)
__constant_range(__c, 0, 15);
extern __ATTRS_o __vector signed short
vec_sld(__vector signed short __a, __vector signed short __b, int __c)
__constant_range(__c, 0, 15);
// This prototype is deprecated.
extern __ATTRS_o __vector __bool short
vec_sld(__vector __bool short __a, __vector __bool short __b, int __c)
__constant_range(__c, 0, 15);
extern __ATTRS_o __vector unsigned short
vec_sld(__vector unsigned short __a, __vector unsigned short __b, int __c)
__constant_range(__c, 0, 15);
extern __ATTRS_o __vector signed int
vec_sld(__vector signed int __a, __vector signed int __b, int __c)
__constant_range(__c, 0, 15);
// This prototype is deprecated.
extern __ATTRS_o __vector __bool int
vec_sld(__vector __bool int __a, __vector __bool int __b, int __c)
__constant_range(__c, 0, 15);
extern __ATTRS_o __vector unsigned int
vec_sld(__vector unsigned int __a, __vector unsigned int __b, int __c)
__constant_range(__c, 0, 15);
extern __ATTRS_o __vector signed long long
vec_sld(__vector signed long long __a, __vector signed long long __b, int __c)
__constant_range(__c, 0, 15);
// This prototype is deprecated.
extern __ATTRS_o __vector __bool long long
vec_sld(__vector __bool long long __a, __vector __bool long long __b, int __c)
__constant_range(__c, 0, 15);
extern __ATTRS_o __vector unsigned long long
vec_sld(__vector unsigned long long __a, __vector unsigned long long __b,
int __c)
__constant_range(__c, 0, 15);
extern __ATTRS_o __vector signed __int128
vec_sld(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
__constant_range(__c, 0, 15);
extern __ATTRS_o __vector unsigned __int128
vec_sld(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
int __c)
__constant_range(__c, 0, 15);
#if __ARCH__ >= 12
extern __ATTRS_o __vector float
vec_sld(__vector float __a, __vector float __b, int __c)
__constant_range(__c, 0, 15);
#endif
extern __ATTRS_o __vector double
vec_sld(__vector double __a, __vector double __b, int __c)
__constant_range(__c, 0, 15);
#define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
__builtin_s390_vsldb((__vector unsigned char)(X), \
(__vector unsigned char)(Y), (Z)))
/*-- vec_sldw ---------------------------------------------------------------*/
extern __ATTRS_o __vector signed char
vec_sldw(__vector signed char __a, __vector signed char __b, int __c)
__constant_range(__c, 0, 3);
extern __ATTRS_o __vector unsigned char
vec_sldw(__vector unsigned char __a, __vector unsigned char __b, int __c)
__constant_range(__c, 0, 3);
extern __ATTRS_o __vector signed short
vec_sldw(__vector signed short __a, __vector signed short __b, int __c)
__constant_range(__c, 0, 3);
extern __ATTRS_o __vector unsigned short
vec_sldw(__vector unsigned short __a, __vector unsigned short __b, int __c)
__constant_range(__c, 0, 3);
extern __ATTRS_o __vector signed int
vec_sldw(__vector signed int __a, __vector signed int __b, int __c)
__constant_range(__c, 0, 3);
extern __ATTRS_o __vector unsigned int
vec_sldw(__vector unsigned int __a, __vector unsigned int __b, int __c)
__constant_range(__c, 0, 3);
extern __ATTRS_o __vector signed long long
vec_sldw(__vector signed long long __a, __vector signed long long __b, int __c)
__constant_range(__c, 0, 3);
extern __ATTRS_o __vector unsigned long long
vec_sldw(__vector unsigned long long __a, __vector unsigned long long __b,
int __c)
__constant_range(__c, 0, 3);
extern __ATTRS_o __vector signed __int128
vec_sldw(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
__constant_range(__c, 0, 3);
extern __ATTRS_o __vector unsigned __int128
vec_sldw(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
int __c)
__constant_range(__c, 0, 3);
// This prototype is deprecated.
extern __ATTRS_o __vector double
vec_sldw(__vector double __a, __vector double __b, int __c)
__constant_range(__c, 0, 3);
#define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
__builtin_s390_vsldb((__vector unsigned char)(X), \
(__vector unsigned char)(Y), (Z) * 4))
/*-- vec_sldb ---------------------------------------------------------------*/
#if __ARCH__ >= 13
extern __ATTRS_o __vector signed char
vec_sldb(__vector signed char __a, __vector signed char __b, int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector unsigned char
vec_sldb(__vector unsigned char __a, __vector unsigned char __b, int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector signed short
vec_sldb(__vector signed short __a, __vector signed short __b, int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector unsigned short
vec_sldb(__vector unsigned short __a, __vector unsigned short __b, int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector signed int
vec_sldb(__vector signed int __a, __vector signed int __b, int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector unsigned int
vec_sldb(__vector unsigned int __a, __vector unsigned int __b, int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector signed long long
vec_sldb(__vector signed long long __a, __vector signed long long __b, int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector unsigned long long
vec_sldb(__vector unsigned long long __a, __vector unsigned long long __b,
int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector signed __int128
vec_sldb(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector unsigned __int128
vec_sldb(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector float
vec_sldb(__vector float __a, __vector float __b, int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector double
vec_sldb(__vector double __a, __vector double __b, int __c)
__constant_range(__c, 0, 7);
#define vec_sldb(X, Y, Z) ((__typeof__((vec_sldb)((X), (Y), (Z)))) \
__builtin_s390_vsld((__vector unsigned char)(X), \
(__vector unsigned char)(Y), (Z)))
#endif
/*-- vec_sral ---------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a, __vector unsigned char __b) {
return (__vector signed char)__builtin_s390_vsra(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a, __vector unsigned short __b) {
return (__vector signed char)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a, __vector unsigned int __b) {
return (__vector signed char)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a, __vector unsigned char __b) {
return (__vector __bool char)__builtin_s390_vsra(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a, __vector unsigned short __b) {
return (__vector __bool char)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a, __vector unsigned int __b) {
return (__vector __bool char)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vsra(__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a, __vector unsigned short __b) {
return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a, __vector unsigned int __b) {
return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a, __vector unsigned char __b) {
return (__vector signed short)__builtin_s390_vsra(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a, __vector unsigned short __b) {
return (__vector signed short)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a, __vector unsigned int __b) {
return (__vector signed short)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a, __vector unsigned char __b) {
return (__vector __bool short)__builtin_s390_vsra(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a, __vector unsigned short __b) {
return (__vector __bool short)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a, __vector unsigned int __b) {
return (__vector __bool short)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a, __vector unsigned char __b) {
return (__vector unsigned short)__builtin_s390_vsra(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a, __vector unsigned short __b) {
return (__vector unsigned short)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a, __vector unsigned int __b) {
return (__vector unsigned short)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a, __vector unsigned char __b) {
return (__vector signed int)__builtin_s390_vsra(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a, __vector unsigned short __b) {
return (__vector signed int)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a, __vector unsigned int __b) {
return (__vector signed int)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a, __vector unsigned char __b) {
return (__vector __bool int)__builtin_s390_vsra(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a, __vector unsigned short __b) {
return (__vector __bool int)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a, __vector unsigned int __b) {
return (__vector __bool int)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a, __vector unsigned char __b) {
return (__vector unsigned int)__builtin_s390_vsra(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a, __vector unsigned short __b) {
return (__vector unsigned int)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a, __vector unsigned int __b) {
return (__vector unsigned int)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a, __vector unsigned char __b) {
return (__vector signed long long)__builtin_s390_vsra(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a, __vector unsigned short __b) {
return (__vector signed long long)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a, __vector unsigned int __b) {
return (__vector signed long long)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a, __vector unsigned char __b) {
return (__vector __bool long long)__builtin_s390_vsra(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a, __vector unsigned short __b) {
return (__vector __bool long long)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a, __vector unsigned int __b) {
return (__vector __bool long long)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a, __vector unsigned char __b) {
return (__vector unsigned long long)__builtin_s390_vsra(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a, __vector unsigned short __b) {
return (__vector unsigned long long)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a, __vector unsigned int __b) {
return (__vector unsigned long long)__builtin_s390_vsra(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed __int128
vec_sral(__vector signed __int128 __a, __vector unsigned char __b) {
return (__vector signed __int128)__builtin_s390_vsra(
(__vector unsigned char)__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_sral(__vector unsigned __int128 __a, __vector unsigned char __b) {
return (__vector unsigned __int128)__builtin_s390_vsra(
(__vector unsigned char)__a, __b);
}
/*-- vec_srab ---------------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_srab(__vector signed char __a, __vector signed char __b) {
return (__vector signed char)__builtin_s390_vsrab(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed char
vec_srab(__vector signed char __a, __vector unsigned char __b) {
return (__vector signed char)__builtin_s390_vsrab(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_srab(__vector unsigned char __a, __vector signed char __b) {
return __builtin_s390_vsrab(__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_srab(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vsrab(__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_srab(__vector signed short __a, __vector signed short __b) {
return (__vector signed short)__builtin_s390_vsrab(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_srab(__vector signed short __a, __vector unsigned short __b) {
return (__vector signed short)__builtin_s390_vsrab(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed short
vec_srab(__vector signed short __a, __vector unsigned char __b) {
return (__vector signed short)__builtin_s390_vsrab(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_srab(__vector unsigned short __a, __vector signed short __b) {
return (__vector unsigned short)__builtin_s390_vsrab(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_srab(__vector unsigned short __a, __vector unsigned short __b) {
return (__vector unsigned short)__builtin_s390_vsrab(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_srab(__vector unsigned short __a, __vector unsigned char __b) {
return (__vector unsigned short)__builtin_s390_vsrab(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_srab(__vector signed int __a, __vector signed int __b) {
return (__vector signed int)__builtin_s390_vsrab(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_srab(__vector signed int __a, __vector unsigned int __b) {
return (__vector signed int)__builtin_s390_vsrab(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed int
vec_srab(__vector signed int __a, __vector unsigned char __b) {
return (__vector signed int)__builtin_s390_vsrab(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_srab(__vector unsigned int __a, __vector signed int __b) {
return (__vector unsigned int)__builtin_s390_vsrab(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_srab(__vector unsigned int __a, __vector unsigned int __b) {
return (__vector unsigned int)__builtin_s390_vsrab(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_srab(__vector unsigned int __a, __vector unsigned char __b) {
return (__vector unsigned int)__builtin_s390_vsrab(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_srab(__vector signed long long __a, __vector signed long long __b) {
return (__vector signed long long)__builtin_s390_vsrab(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_srab(__vector signed long long __a, __vector unsigned long long __b) {
return (__vector signed long long)__builtin_s390_vsrab(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed long long
vec_srab(__vector signed long long __a, __vector unsigned char __b) {
return (__vector signed long long)__builtin_s390_vsrab(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_srab(__vector unsigned long long __a, __vector signed long long __b) {
return (__vector unsigned long long)__builtin_s390_vsrab(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_srab(__vector unsigned long long __a, __vector unsigned long long __b) {
return (__vector unsigned long long)__builtin_s390_vsrab(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_srab(__vector unsigned long long __a, __vector unsigned char __b) {
return (__vector unsigned long long)__builtin_s390_vsrab(
(__vector unsigned char)__a, __b);
}
static inline __ATTRS_o_ai __vector signed __int128
vec_srab(__vector signed __int128 __a, __vector unsigned char __b) {
return (__vector signed __int128)__builtin_s390_vsrab(
(__vector unsigned char)__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_srab(__vector unsigned __int128 __a, __vector unsigned char __b) {
return (__vector unsigned __int128)__builtin_s390_vsrab(
(__vector unsigned char)__a, __b);
}
#if __ARCH__ >= 12
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector float
vec_srab(__vector float __a, __vector signed int __b) {
return (__vector float)__builtin_s390_vsrab(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector float
vec_srab(__vector float __a, __vector unsigned int __b) {
return (__vector float)__builtin_s390_vsrab(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector float
vec_srab(__vector float __a, __vector unsigned char __b) {
return (__vector float)__builtin_s390_vsrab(
(__vector unsigned char)__a, __b);
}
#endif
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector double
vec_srab(__vector double __a, __vector signed long long __b) {
return (__vector double)__builtin_s390_vsrab(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector double
vec_srab(__vector double __a, __vector unsigned long long __b) {
return (__vector double)__builtin_s390_vsrab(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector double
vec_srab(__vector double __a, __vector unsigned char __b) {
return (__vector double)__builtin_s390_vsrab(
(__vector unsigned char)__a, __b);
}
/*-- vec_srl ----------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a, __vector unsigned char __b) {
return (__vector signed char)__builtin_s390_vsrl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a, __vector unsigned short __b) {
return (__vector signed char)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a, __vector unsigned int __b) {
return (__vector signed char)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a, __vector unsigned char __b) {
return (__vector __bool char)__builtin_s390_vsrl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a, __vector unsigned short __b) {
return (__vector __bool char)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a, __vector unsigned int __b) {
return (__vector __bool char)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vsrl(__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a, __vector unsigned short __b) {
return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a, __vector unsigned int __b) {
return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a, __vector unsigned char __b) {
return (__vector signed short)__builtin_s390_vsrl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a, __vector unsigned short __b) {
return (__vector signed short)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a, __vector unsigned int __b) {
return (__vector signed short)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a, __vector unsigned char __b) {
return (__vector __bool short)__builtin_s390_vsrl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a, __vector unsigned short __b) {
return (__vector __bool short)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a, __vector unsigned int __b) {
return (__vector __bool short)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a, __vector unsigned char __b) {
return (__vector unsigned short)__builtin_s390_vsrl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a, __vector unsigned short __b) {
return (__vector unsigned short)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a, __vector unsigned int __b) {
return (__vector unsigned short)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a, __vector unsigned char __b) {
return (__vector signed int)__builtin_s390_vsrl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a, __vector unsigned short __b) {
return (__vector signed int)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a, __vector unsigned int __b) {
return (__vector signed int)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a, __vector unsigned char __b) {
return (__vector __bool int)__builtin_s390_vsrl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a, __vector unsigned short __b) {
return (__vector __bool int)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a, __vector unsigned int __b) {
return (__vector __bool int)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a, __vector unsigned char __b) {
return (__vector unsigned int)__builtin_s390_vsrl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a, __vector unsigned short __b) {
return (__vector unsigned int)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a, __vector unsigned int __b) {
return (__vector unsigned int)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a, __vector unsigned char __b) {
return (__vector signed long long)__builtin_s390_vsrl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a, __vector unsigned short __b) {
return (__vector signed long long)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a, __vector unsigned int __b) {
return (__vector signed long long)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a, __vector unsigned char __b) {
return (__vector __bool long long)__builtin_s390_vsrl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a, __vector unsigned short __b) {
return (__vector __bool long long)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a, __vector unsigned int __b) {
return (__vector __bool long long)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a, __vector unsigned char __b) {
return (__vector unsigned long long)__builtin_s390_vsrl(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a, __vector unsigned short __b) {
return (__vector unsigned long long)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a, __vector unsigned int __b) {
return (__vector unsigned long long)__builtin_s390_vsrl(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed __int128
vec_srl(__vector signed __int128 __a, __vector unsigned char __b) {
return (__vector signed __int128)__builtin_s390_vsrl(
(__vector unsigned char)__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_srl(__vector unsigned __int128 __a, __vector unsigned char __b) {
return (__vector unsigned __int128)__builtin_s390_vsrl(
(__vector unsigned char)__a, __b);
}
/*-- vec_srb ----------------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_srb(__vector signed char __a, __vector signed char __b) {
return (__vector signed char)__builtin_s390_vsrlb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed char
vec_srb(__vector signed char __a, __vector unsigned char __b) {
return (__vector signed char)__builtin_s390_vsrlb(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_srb(__vector unsigned char __a, __vector signed char __b) {
return __builtin_s390_vsrlb(__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_srb(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vsrlb(__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_srb(__vector signed short __a, __vector signed short __b) {
return (__vector signed short)__builtin_s390_vsrlb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_srb(__vector signed short __a, __vector unsigned short __b) {
return (__vector signed short)__builtin_s390_vsrlb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed short
vec_srb(__vector signed short __a, __vector unsigned char __b) {
return (__vector signed short)__builtin_s390_vsrlb(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_srb(__vector unsigned short __a, __vector signed short __b) {
return (__vector unsigned short)__builtin_s390_vsrlb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_srb(__vector unsigned short __a, __vector unsigned short __b) {
return (__vector unsigned short)__builtin_s390_vsrlb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_srb(__vector unsigned short __a, __vector unsigned char __b) {
return (__vector unsigned short)__builtin_s390_vsrlb(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_srb(__vector signed int __a, __vector signed int __b) {
return (__vector signed int)__builtin_s390_vsrlb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_srb(__vector signed int __a, __vector unsigned int __b) {
return (__vector signed int)__builtin_s390_vsrlb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed int
vec_srb(__vector signed int __a, __vector unsigned char __b) {
return (__vector signed int)__builtin_s390_vsrlb(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_srb(__vector unsigned int __a, __vector signed int __b) {
return (__vector unsigned int)__builtin_s390_vsrlb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_srb(__vector unsigned int __a, __vector unsigned int __b) {
return (__vector unsigned int)__builtin_s390_vsrlb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_srb(__vector unsigned int __a, __vector unsigned char __b) {
return (__vector unsigned int)__builtin_s390_vsrlb(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_srb(__vector signed long long __a, __vector signed long long __b) {
return (__vector signed long long)__builtin_s390_vsrlb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_srb(__vector signed long long __a, __vector unsigned long long __b) {
return (__vector signed long long)__builtin_s390_vsrlb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector signed long long
vec_srb(__vector signed long long __a, __vector unsigned char __b) {
return (__vector signed long long)__builtin_s390_vsrlb(
(__vector unsigned char)__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_srb(__vector unsigned long long __a, __vector signed long long __b) {
return (__vector unsigned long long)__builtin_s390_vsrlb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_srb(__vector unsigned long long __a, __vector unsigned long long __b) {
return (__vector unsigned long long)__builtin_s390_vsrlb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_srb(__vector unsigned long long __a, __vector unsigned char __b) {
return (__vector unsigned long long)__builtin_s390_vsrlb(
(__vector unsigned char)__a, __b);
}
static inline __ATTRS_o_ai __vector signed __int128
vec_srb(__vector signed __int128 __a, __vector unsigned char __b) {
return (__vector signed __int128)__builtin_s390_vsrlb(
(__vector unsigned char)__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_srb(__vector unsigned __int128 __a, __vector unsigned char __b) {
return (__vector unsigned __int128)__builtin_s390_vsrlb(
(__vector unsigned char)__a, __b);
}
#if __ARCH__ >= 12
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector float
vec_srb(__vector float __a, __vector signed int __b) {
return (__vector float)__builtin_s390_vsrlb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector float
vec_srb(__vector float __a, __vector unsigned int __b) {
return (__vector float)__builtin_s390_vsrlb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector float
vec_srb(__vector float __a, __vector unsigned char __b) {
return (__vector float)__builtin_s390_vsrlb(
(__vector unsigned char)__a, __b);
}
#endif
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector double
vec_srb(__vector double __a, __vector signed long long __b) {
return (__vector double)__builtin_s390_vsrlb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector double
vec_srb(__vector double __a, __vector unsigned long long __b) {
return (__vector double)__builtin_s390_vsrlb(
(__vector unsigned char)__a, (__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector double
vec_srb(__vector double __a, __vector unsigned char __b) {
return (__vector double)__builtin_s390_vsrlb(
(__vector unsigned char)__a, __b);
}
/*-- vec_srdb ---------------------------------------------------------------*/
#if __ARCH__ >= 13
extern __ATTRS_o __vector signed char
vec_srdb(__vector signed char __a, __vector signed char __b, int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector unsigned char
vec_srdb(__vector unsigned char __a, __vector unsigned char __b, int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector signed short
vec_srdb(__vector signed short __a, __vector signed short __b, int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector unsigned short
vec_srdb(__vector unsigned short __a, __vector unsigned short __b, int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector signed int
vec_srdb(__vector signed int __a, __vector signed int __b, int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector unsigned int
vec_srdb(__vector unsigned int __a, __vector unsigned int __b, int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector signed long long
vec_srdb(__vector signed long long __a, __vector signed long long __b, int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector unsigned long long
vec_srdb(__vector unsigned long long __a, __vector unsigned long long __b,
int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector signed __int128
vec_srdb(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector unsigned __int128
vec_srdb(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector float
vec_srdb(__vector float __a, __vector float __b, int __c)
__constant_range(__c, 0, 7);
extern __ATTRS_o __vector double
vec_srdb(__vector double __a, __vector double __b, int __c)
__constant_range(__c, 0, 7);
#define vec_srdb(X, Y, Z) ((__typeof__((vec_srdb)((X), (Y), (Z)))) \
__builtin_s390_vsrd((__vector unsigned char)(X), \
(__vector unsigned char)(Y), (Z)))
#endif
/*-- vec_abs ----------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_abs(__vector signed char __a) {
return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed char)0));
}
static inline __ATTRS_o_ai __vector signed short
vec_abs(__vector signed short __a) {
return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed short)0));
}
static inline __ATTRS_o_ai __vector signed int
vec_abs(__vector signed int __a) {
return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed int)0));
}
static inline __ATTRS_o_ai __vector signed long long
vec_abs(__vector signed long long __a) {
return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed long long)0));
}
static inline __ATTRS_o_ai __vector signed __int128
vec_abs(__vector signed __int128 __a) {
return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed __int128)0));
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_abs(__vector float __a) {
return __builtin_s390_vflpsb(__a);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_abs(__vector double __a) {
return __builtin_s390_vflpdb(__a);
}
/*-- vec_nabs ---------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_nabs(__vector float __a) {
return __builtin_s390_vflnsb(__a);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_nabs(__vector double __a) {
return __builtin_s390_vflndb(__a);
}
/*-- vec_max ----------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_max(__vector signed char __a, __vector signed char __b) {
return vec_sel(__b, __a, vec_cmpgt(__a, __b));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_max(__vector signed char __a, __vector __bool char __b) {
__vector signed char __bc = (__vector signed char)__b;
return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_max(__vector __bool char __a, __vector signed char __b) {
__vector signed char __ac = (__vector signed char)__a;
return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
}
static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector unsigned char __a, __vector unsigned char __b) {
return vec_sel(__b, __a, vec_cmpgt(__a, __b));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector unsigned char __a, __vector __bool char __b) {
__vector unsigned char __bc = (__vector unsigned char)__b;
return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector __bool char __a, __vector unsigned char __b) {
__vector unsigned char __ac = (__vector unsigned char)__a;
return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
}
static inline __ATTRS_o_ai __vector signed short
vec_max(__vector signed short __a, __vector signed short __b) {
return vec_sel(__b, __a, vec_cmpgt(__a, __b));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_max(__vector signed short __a, __vector __bool short __b) {
__vector signed short __bc = (__vector signed short)__b;
return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_max(__vector __bool short __a, __vector signed short __b) {
__vector signed short __ac = (__vector signed short)__a;
return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
}
static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector unsigned short __a, __vector unsigned short __b) {
return vec_sel(__b, __a, vec_cmpgt(__a, __b));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector unsigned short __a, __vector __bool short __b) {
__vector unsigned short __bc = (__vector unsigned short)__b;
return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector __bool short __a, __vector unsigned short __b) {
__vector unsigned short __ac = (__vector unsigned short)__a;
return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
}
static inline __ATTRS_o_ai __vector signed int
vec_max(__vector signed int __a, __vector signed int __b) {
return vec_sel(__b, __a, vec_cmpgt(__a, __b));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_max(__vector signed int __a, __vector __bool int __b) {
__vector signed int __bc = (__vector signed int)__b;
return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_max(__vector __bool int __a, __vector signed int __b) {
__vector signed int __ac = (__vector signed int)__a;
return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
}
static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector unsigned int __a, __vector unsigned int __b) {
return vec_sel(__b, __a, vec_cmpgt(__a, __b));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector unsigned int __a, __vector __bool int __b) {
__vector unsigned int __bc = (__vector unsigned int)__b;
return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector __bool int __a, __vector unsigned int __b) {
__vector unsigned int __ac = (__vector unsigned int)__a;
return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
}
static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector signed long long __a, __vector signed long long __b) {
return vec_sel(__b, __a, vec_cmpgt(__a, __b));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector signed long long __a, __vector __bool long long __b) {
__vector signed long long __bc = (__vector signed long long)__b;
return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector __bool long long __a, __vector signed long long __b) {
__vector signed long long __ac = (__vector signed long long)__a;
return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector unsigned long long __a, __vector unsigned long long __b) {
return vec_sel(__b, __a, vec_cmpgt(__a, __b));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector unsigned long long __a, __vector __bool long long __b) {
__vector unsigned long long __bc = (__vector unsigned long long)__b;
return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector __bool long long __a, __vector unsigned long long __b) {
__vector unsigned long long __ac = (__vector unsigned long long)__a;
return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
}
static inline __ATTRS_o_ai __vector signed __int128
vec_max(__vector signed __int128 __a, __vector signed __int128 __b) {
return vec_sel(__b, __a, vec_cmpgt(__a, __b));
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_max(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return vec_sel(__b, __a, vec_cmpgt(__a, __b));
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_max(__vector float __a, __vector float __b) {
return __builtin_s390_vfmaxsb(__a, __b, 0);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_max(__vector double __a, __vector double __b) {
#if __ARCH__ >= 12
return __builtin_s390_vfmaxdb(__a, __b, 0);
#else
return vec_sel(__b, __a, vec_cmpgt(__a, __b));
#endif
}
/*-- vec_min ----------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_min(__vector signed char __a, __vector signed char __b) {
return vec_sel(__a, __b, vec_cmpgt(__a, __b));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_min(__vector signed char __a, __vector __bool char __b) {
__vector signed char __bc = (__vector signed char)__b;
return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed char
vec_min(__vector __bool char __a, __vector signed char __b) {
__vector signed char __ac = (__vector signed char)__a;
return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
}
static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector unsigned char __a, __vector unsigned char __b) {
return vec_sel(__a, __b, vec_cmpgt(__a, __b));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector unsigned char __a, __vector __bool char __b) {
__vector unsigned char __bc = (__vector unsigned char)__b;
return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector __bool char __a, __vector unsigned char __b) {
__vector unsigned char __ac = (__vector unsigned char)__a;
return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
}
static inline __ATTRS_o_ai __vector signed short
vec_min(__vector signed short __a, __vector signed short __b) {
return vec_sel(__a, __b, vec_cmpgt(__a, __b));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_min(__vector signed short __a, __vector __bool short __b) {
__vector signed short __bc = (__vector signed short)__b;
return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed short
vec_min(__vector __bool short __a, __vector signed short __b) {
__vector signed short __ac = (__vector signed short)__a;
return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
}
static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector unsigned short __a, __vector unsigned short __b) {
return vec_sel(__a, __b, vec_cmpgt(__a, __b));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector unsigned short __a, __vector __bool short __b) {
__vector unsigned short __bc = (__vector unsigned short)__b;
return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector __bool short __a, __vector unsigned short __b) {
__vector unsigned short __ac = (__vector unsigned short)__a;
return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
}
static inline __ATTRS_o_ai __vector signed int
vec_min(__vector signed int __a, __vector signed int __b) {
return vec_sel(__a, __b, vec_cmpgt(__a, __b));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_min(__vector signed int __a, __vector __bool int __b) {
__vector signed int __bc = (__vector signed int)__b;
return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed int
vec_min(__vector __bool int __a, __vector signed int __b) {
__vector signed int __ac = (__vector signed int)__a;
return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
}
static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector unsigned int __a, __vector unsigned int __b) {
return vec_sel(__a, __b, vec_cmpgt(__a, __b));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector unsigned int __a, __vector __bool int __b) {
__vector unsigned int __bc = (__vector unsigned int)__b;
return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector __bool int __a, __vector unsigned int __b) {
__vector unsigned int __ac = (__vector unsigned int)__a;
return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
}
static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector signed long long __a, __vector signed long long __b) {
return vec_sel(__a, __b, vec_cmpgt(__a, __b));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector signed long long __a, __vector __bool long long __b) {
__vector signed long long __bc = (__vector signed long long)__b;
return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector __bool long long __a, __vector signed long long __b) {
__vector signed long long __ac = (__vector signed long long)__a;
return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector unsigned long long __a, __vector unsigned long long __b) {
return vec_sel(__a, __b, vec_cmpgt(__a, __b));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector unsigned long long __a, __vector __bool long long __b) {
__vector unsigned long long __bc = (__vector unsigned long long)__b;
return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector __bool long long __a, __vector unsigned long long __b) {
__vector unsigned long long __ac = (__vector unsigned long long)__a;
return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
}
static inline __ATTRS_o_ai __vector signed __int128
vec_min(__vector signed __int128 __a, __vector signed __int128 __b) {
return vec_sel(__a, __b, vec_cmpgt(__a, __b));
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_min(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return vec_sel(__a, __b, vec_cmpgt(__a, __b));
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_min(__vector float __a, __vector float __b) {
return __builtin_s390_vfminsb(__a, __b, 0);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_min(__vector double __a, __vector double __b) {
#if __ARCH__ >= 12
return __builtin_s390_vfmindb(__a, __b, 0);
#else
return vec_sel(__a, __b, vec_cmpgt(__a, __b));
#endif
}
/*-- vec_add_u128 -----------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_ai __vector unsigned char
vec_add_u128(__vector unsigned char __a, __vector unsigned char __b) {
return (__vector unsigned char)(__vector unsigned __int128)
((__int128)__a + (__int128)__b);
}
/*-- vec_addc ---------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned char
vec_addc(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vaccb(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_addc(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_vacch(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_addc(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_vaccf(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_addc(__vector unsigned long long __a, __vector unsigned long long __b) {
return __builtin_s390_vaccg(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_addc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return (__vector unsigned __int128)
__builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b);
}
/*-- vec_addc_u128 ----------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_ai __vector unsigned char
vec_addc_u128(__vector unsigned char __a, __vector unsigned char __b) {
return (__vector unsigned char)(__vector unsigned __int128)
__builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b);
}
/*-- vec_adde ---------------------------------------------------------------*/
static inline __ATTRS_ai __vector unsigned __int128
vec_adde(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
__vector unsigned __int128 __c) {
return (__vector unsigned __int128)
__builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b,
(unsigned __int128)__c);
}
/*-- vec_adde_u128 ----------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_ai __vector unsigned char
vec_adde_u128(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c) {
return (__vector unsigned char)(__vector unsigned __int128)
__builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b,
(unsigned __int128)__c);
}
/*-- vec_addec --------------------------------------------------------------*/
static inline __ATTRS_ai __vector unsigned __int128
vec_addec(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
__vector unsigned __int128 __c) {
return (__vector unsigned __int128)
__builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b,
(unsigned __int128)__c);
}
/*-- vec_addec_u128 ---------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_ai __vector unsigned char
vec_addec_u128(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c) {
return (__vector unsigned char)(__vector unsigned __int128)
__builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b,
(unsigned __int128)__c);
}
/*-- vec_avg ----------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_avg(__vector signed char __a, __vector signed char __b) {
return __builtin_s390_vavgb(__a, __b);
}
static inline __ATTRS_o_ai __vector signed short
vec_avg(__vector signed short __a, __vector signed short __b) {
return __builtin_s390_vavgh(__a, __b);
}
static inline __ATTRS_o_ai __vector signed int
vec_avg(__vector signed int __a, __vector signed int __b) {
return __builtin_s390_vavgf(__a, __b);
}
static inline __ATTRS_o_ai __vector signed long long
vec_avg(__vector signed long long __a, __vector signed long long __b) {
return __builtin_s390_vavgg(__a, __b);
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai __vector signed __int128
vec_avg(__vector signed __int128 __a, __vector signed __int128 __b) {
return (__vector signed __int128)
__builtin_s390_vavgq((signed __int128)__a, (signed __int128)__b);
}
#endif
static inline __ATTRS_o_ai __vector unsigned char
vec_avg(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vavglb(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_avg(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_vavglh(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_avg(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_vavglf(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_avg(__vector unsigned long long __a, __vector unsigned long long __b) {
return __builtin_s390_vavglg(__a, __b);
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai __vector unsigned __int128
vec_avg(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return (__vector unsigned __int128)
__builtin_s390_vavglq((unsigned __int128)__a, (unsigned __int128)__b);
}
#endif
/*-- vec_checksum -----------------------------------------------------------*/
static inline __ATTRS_ai __vector unsigned int
vec_checksum(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_vcksm(__a, __b);
}
/*-- vec_gfmsum -------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned short
vec_gfmsum(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vgfmb(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_gfmsum(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_vgfmh(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_gfmsum(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_vgfmf(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_gfmsum(__vector unsigned long long __a, __vector unsigned long long __b) {
return (__vector unsigned __int128)__builtin_s390_vgfmg(__a, __b);
}
/*-- vec_gfmsum_128 ---------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_gfmsum_128(__vector unsigned long long __a,
__vector unsigned long long __b) {
return (__vector unsigned char)(__vector unsigned __int128)
__builtin_s390_vgfmg(__a, __b);
}
/*-- vec_gfmsum_accum -------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned short
vec_gfmsum_accum(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned short __c) {
return __builtin_s390_vgfmab(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_gfmsum_accum(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned int __c) {
return __builtin_s390_vgfmah(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_gfmsum_accum(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned long long __c) {
return __builtin_s390_vgfmaf(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_gfmsum_accum(__vector unsigned long long __a, __vector unsigned long long __b,
__vector unsigned __int128 __c) {
return (__vector unsigned __int128)
__builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c);
}
/*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_gfmsum_accum_128(__vector unsigned long long __a,
__vector unsigned long long __b,
__vector unsigned char __c) {
return (__vector unsigned char)(__vector unsigned __int128)
__builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c);
}
/*-- vec_mladd --------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_mladd(__vector signed char __a, __vector signed char __b,
__vector signed char __c) {
return __a * __b + __c;
}
static inline __ATTRS_o_ai __vector signed char
vec_mladd(__vector unsigned char __a, __vector signed char __b,
__vector signed char __c) {
return (__vector signed char)__a * __b + __c;
}
static inline __ATTRS_o_ai __vector signed char
vec_mladd(__vector signed char __a, __vector unsigned char __b,
__vector unsigned char __c) {
return __a * (__vector signed char)__b + (__vector signed char)__c;
}
static inline __ATTRS_o_ai __vector unsigned char
vec_mladd(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c) {
return __a * __b + __c;
}
static inline __ATTRS_o_ai __vector signed short
vec_mladd(__vector signed short __a, __vector signed short __b,
__vector signed short __c) {
return __a * __b + __c;
}
static inline __ATTRS_o_ai __vector signed short
vec_mladd(__vector unsigned short __a, __vector signed short __b,
__vector signed short __c) {
return (__vector signed short)__a * __b + __c;
}
static inline __ATTRS_o_ai __vector signed short
vec_mladd(__vector signed short __a, __vector unsigned short __b,
__vector unsigned short __c) {
return __a * (__vector signed short)__b + (__vector signed short)__c;
}
static inline __ATTRS_o_ai __vector unsigned short
vec_mladd(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned short __c) {
return __a * __b + __c;
}
static inline __ATTRS_o_ai __vector signed int
vec_mladd(__vector signed int __a, __vector signed int __b,
__vector signed int __c) {
return __a * __b + __c;
}
static inline __ATTRS_o_ai __vector signed int
vec_mladd(__vector unsigned int __a, __vector signed int __b,
__vector signed int __c) {
return (__vector signed int)__a * __b + __c;
}
static inline __ATTRS_o_ai __vector signed int
vec_mladd(__vector signed int __a, __vector unsigned int __b,
__vector unsigned int __c) {
return __a * (__vector signed int)__b + (__vector signed int)__c;
}
static inline __ATTRS_o_ai __vector unsigned int
vec_mladd(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned int __c) {
return __a * __b + __c;
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai __vector signed long long
vec_mladd(__vector signed long long __a, __vector signed long long __b,
__vector signed long long __c) {
return __a * __b + __c;
}
static inline __ATTRS_o_ai __vector signed long long
vec_mladd(__vector unsigned long long __a, __vector signed long long __b,
__vector signed long long __c) {
return (__vector signed long long)__a * __b + __c;
}
static inline __ATTRS_o_ai __vector signed long long
vec_mladd(__vector signed long long __a, __vector unsigned long long __b,
__vector unsigned long long __c) {
return __a * (__vector signed long long)__b + (__vector signed long long)__c;
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_mladd(__vector unsigned long long __a, __vector unsigned long long __b,
__vector unsigned long long __c) {
return __a * __b + __c;
}
static inline __ATTRS_o_ai __vector signed __int128
vec_mladd(__vector signed __int128 __a, __vector signed __int128 __b,
__vector signed __int128 __c) {
return __a * __b + __c;
}
static inline __ATTRS_o_ai __vector signed __int128
vec_mladd(__vector unsigned __int128 __a, __vector signed __int128 __b,
__vector signed __int128 __c) {
return (__vector signed __int128)__a * __b + __c;
}
static inline __ATTRS_o_ai __vector signed __int128
vec_mladd(__vector signed __int128 __a, __vector unsigned __int128 __b,
__vector unsigned __int128 __c) {
return __a * (__vector signed __int128)__b + (__vector signed __int128)__c;
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_mladd(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
__vector unsigned __int128 __c) {
return __a * __b + __c;
}
#endif
/*-- vec_mhadd --------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_mhadd(__vector signed char __a, __vector signed char __b,
__vector signed char __c) {
return __builtin_s390_vmahb(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_mhadd(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c) {
return __builtin_s390_vmalhb(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector signed short
vec_mhadd(__vector signed short __a, __vector signed short __b,
__vector signed short __c) {
return __builtin_s390_vmahh(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_mhadd(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned short __c) {
return __builtin_s390_vmalhh(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector signed int
vec_mhadd(__vector signed int __a, __vector signed int __b,
__vector signed int __c) {
return __builtin_s390_vmahf(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_mhadd(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned int __c) {
return __builtin_s390_vmalhf(__a, __b, __c);
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai __vector signed long long
vec_mhadd(__vector signed long long __a, __vector signed long long __b,
__vector signed long long __c) {
return __builtin_s390_vmahg(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_mhadd(__vector unsigned long long __a, __vector unsigned long long __b,
__vector unsigned long long __c) {
return __builtin_s390_vmalhg(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector signed __int128
vec_mhadd(__vector signed __int128 __a, __vector signed __int128 __b,
__vector signed __int128 __c) {
return (__vector signed __int128)
__builtin_s390_vmahq((signed __int128)__a, (signed __int128)__b, (signed __int128)__c);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_mhadd(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
__vector unsigned __int128 __c) {
return (__vector unsigned __int128)
__builtin_s390_vmalhq((unsigned __int128)__a, (unsigned __int128)__b, (unsigned __int128)__c);
}
#endif
/*-- vec_meadd --------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed short
vec_meadd(__vector signed char __a, __vector signed char __b,
__vector signed short __c) {
return __builtin_s390_vmaeb(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_meadd(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned short __c) {
return __builtin_s390_vmaleb(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector signed int
vec_meadd(__vector signed short __a, __vector signed short __b,
__vector signed int __c) {
return __builtin_s390_vmaeh(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_meadd(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned int __c) {
return __builtin_s390_vmaleh(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector signed long long
vec_meadd(__vector signed int __a, __vector signed int __b,
__vector signed long long __c) {
return __builtin_s390_vmaef(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_meadd(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned long long __c) {
return __builtin_s390_vmalef(__a, __b, __c);
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai __vector signed __int128
vec_meadd(__vector signed long long __a, __vector signed long long __b,
__vector signed __int128 __c) {
return (__vector signed __int128)
__builtin_s390_vmaeg(__a, __b, (signed __int128)__c);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_meadd(__vector unsigned long long __a, __vector unsigned long long __b,
__vector unsigned __int128 __c) {
return (__vector unsigned __int128)
__builtin_s390_vmaleg(__a, __b, (unsigned __int128)__c);
}
#endif
/*-- vec_moadd --------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed short
vec_moadd(__vector signed char __a, __vector signed char __b,
__vector signed short __c) {
return __builtin_s390_vmaob(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_moadd(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned short __c) {
return __builtin_s390_vmalob(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector signed int
vec_moadd(__vector signed short __a, __vector signed short __b,
__vector signed int __c) {
return __builtin_s390_vmaoh(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_moadd(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned int __c) {
return __builtin_s390_vmaloh(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector signed long long
vec_moadd(__vector signed int __a, __vector signed int __b,
__vector signed long long __c) {
return __builtin_s390_vmaof(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_moadd(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned long long __c) {
return __builtin_s390_vmalof(__a, __b, __c);
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai __vector signed __int128
vec_moadd(__vector signed long long __a, __vector signed long long __b,
__vector signed __int128 __c) {
return (__vector signed __int128)
__builtin_s390_vmaog(__a, __b, (signed __int128)__c);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_moadd(__vector unsigned long long __a, __vector unsigned long long __b,
__vector unsigned __int128 __c) {
return (__vector unsigned __int128)
__builtin_s390_vmalog(__a, __b, (unsigned __int128)__c);
}
#endif
/*-- vec_mulh ---------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_mulh(__vector signed char __a, __vector signed char __b) {
return __builtin_s390_vmhb(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_mulh(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vmlhb(__a, __b);
}
static inline __ATTRS_o_ai __vector signed short
vec_mulh(__vector signed short __a, __vector signed short __b) {
return __builtin_s390_vmhh(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_mulh(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_vmlhh(__a, __b);
}
static inline __ATTRS_o_ai __vector signed int
vec_mulh(__vector signed int __a, __vector signed int __b) {
return __builtin_s390_vmhf(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_mulh(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_vmlhf(__a, __b);
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai __vector signed long long
vec_mulh(__vector signed long long __a, __vector signed long long __b) {
return __builtin_s390_vmhg(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_mulh(__vector unsigned long long __a, __vector unsigned long long __b) {
return __builtin_s390_vmlhg(__a, __b);
}
static inline __ATTRS_o_ai __vector signed __int128
vec_mulh(__vector signed __int128 __a, __vector signed __int128 __b) {
return (__vector signed __int128)
__builtin_s390_vmhq((signed __int128)__a, (signed __int128)__b);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_mulh(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return (__vector unsigned __int128)
__builtin_s390_vmlhq((unsigned __int128)__a, (unsigned __int128)__b);
}
#endif
/*-- vec_mule ---------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed short
vec_mule(__vector signed char __a, __vector signed char __b) {
return __builtin_s390_vmeb(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_mule(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vmleb(__a, __b);
}
static inline __ATTRS_o_ai __vector signed int
vec_mule(__vector signed short __a, __vector signed short __b) {
return __builtin_s390_vmeh(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_mule(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_vmleh(__a, __b);
}
static inline __ATTRS_o_ai __vector signed long long
vec_mule(__vector signed int __a, __vector signed int __b) {
return __builtin_s390_vmef(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_mule(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_vmlef(__a, __b);
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai __vector signed __int128
vec_mule(__vector signed long long __a, __vector signed long long __b) {
return (__vector signed __int128)__builtin_s390_vmeg(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_mule(__vector unsigned long long __a, __vector unsigned long long __b) {
return (__vector unsigned __int128)__builtin_s390_vmleg(__a, __b);
}
#endif
/*-- vec_mulo ---------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed short
vec_mulo(__vector signed char __a, __vector signed char __b) {
return __builtin_s390_vmob(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_mulo(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vmlob(__a, __b);
}
static inline __ATTRS_o_ai __vector signed int
vec_mulo(__vector signed short __a, __vector signed short __b) {
return __builtin_s390_vmoh(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_mulo(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_vmloh(__a, __b);
}
static inline __ATTRS_o_ai __vector signed long long
vec_mulo(__vector signed int __a, __vector signed int __b) {
return __builtin_s390_vmof(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_mulo(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_vmlof(__a, __b);
}
#if __ARCH__ >= 15
static inline __ATTRS_o_ai __vector signed __int128
vec_mulo(__vector signed long long __a, __vector signed long long __b) {
return (__vector signed __int128)__builtin_s390_vmog(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_mulo(__vector unsigned long long __a, __vector unsigned long long __b) {
return (__vector unsigned __int128)__builtin_s390_vmlog(__a, __b);
}
#endif
/*-- vec_msum ---------------------------------------------------------------*/
#if __ARCH__ >= 12
extern __ATTRS_o __vector unsigned __int128
vec_msum(__vector unsigned long long __a, __vector unsigned long long __b,
__vector unsigned __int128 __c, int __d)
__constant_range(__d, 0, 15);
#define vec_msum(X, Y, Z, W) \
((__typeof__((vec_msum)((X), (Y), (Z), (W)))) \
__builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W)))
#endif
/*-- vec_msum_u128 ----------------------------------------------------------*/
#if __ARCH__ >= 12
// This prototype is deprecated.
extern __ATTRS_o __vector unsigned char
vec_msum_u128(__vector unsigned long long __a, __vector unsigned long long __b,
__vector unsigned char __c, int __d)
__constant_range(__d, 0, 15);
#define vec_msum_u128(X, Y, Z, W) \
((__typeof__((vec_msum_u128)((X), (Y), (Z), (W)))) \
(__vector unsigned __int128) \
__builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W)))
#endif
/*-- vec_sub_u128 -----------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_ai __vector unsigned char
vec_sub_u128(__vector unsigned char __a, __vector unsigned char __b) {
return (__vector unsigned char)(__vector unsigned __int128)
((__int128)__a - (__int128)__b);
}
/*-- vec_subc ---------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned char
vec_subc(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vscbib(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_subc(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_vscbih(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_subc(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_vscbif(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_subc(__vector unsigned long long __a, __vector unsigned long long __b) {
return __builtin_s390_vscbig(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_subc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
return (__vector unsigned __int128)
__builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b);
}
/*-- vec_subc_u128 ----------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_ai __vector unsigned char
vec_subc_u128(__vector unsigned char __a, __vector unsigned char __b) {
return (__vector unsigned char)(__vector unsigned __int128)
__builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b);
}
/*-- vec_sube ---------------------------------------------------------------*/
static inline __ATTRS_ai __vector unsigned __int128
vec_sube(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
__vector unsigned __int128 __c) {
return (__vector unsigned __int128)
__builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b,
(unsigned __int128)__c);
}
/*-- vec_sube_u128 ----------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_ai __vector unsigned char
vec_sube_u128(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c) {
return (__vector unsigned char)(__vector unsigned __int128)
__builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b,
(unsigned __int128)__c);
}
/*-- vec_subec --------------------------------------------------------------*/
static inline __ATTRS_ai __vector unsigned __int128
vec_subec(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
__vector unsigned __int128 __c) {
return (__vector unsigned __int128)
__builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b,
(unsigned __int128)__c);
}
/*-- vec_subec_u128 ---------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_ai __vector unsigned char
vec_subec_u128(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c) {
return (__vector unsigned char)(__vector unsigned __int128)
__builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b,
(unsigned __int128)__c);
}
/*-- vec_sum2 ---------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned long long
vec_sum2(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_vsumgh(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned long long
vec_sum2(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_vsumgf(__a, __b);
}
/*-- vec_sum ----------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned __int128
vec_sum(__vector unsigned int __a, __vector unsigned int __b) {
return (__vector unsigned __int128)__builtin_s390_vsumqf(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned __int128
vec_sum(__vector unsigned long long __a, __vector unsigned long long __b) {
return (__vector unsigned __int128)__builtin_s390_vsumqg(__a, __b);
}
/*-- vec_sum_u128 -----------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_sum_u128(__vector unsigned int __a, __vector unsigned int __b) {
return (__vector unsigned char)(__vector unsigned __int128)
__builtin_s390_vsumqf(__a, __b);
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned char
vec_sum_u128(__vector unsigned long long __a, __vector unsigned long long __b) {
return (__vector unsigned char)(__vector unsigned __int128)
__builtin_s390_vsumqg(__a, __b);
}
/*-- vec_sum4 ---------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned int
vec_sum4(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vsumb(__a, __b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_sum4(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_vsumh(__a, __b);
}
/*-- vec_test_mask ----------------------------------------------------------*/
static inline __ATTRS_o_ai int
vec_test_mask(__vector signed char __a, __vector unsigned char __b) {
return __builtin_s390_vtm((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vtm(__a, __b);
}
static inline __ATTRS_o_ai int
vec_test_mask(__vector signed short __a, __vector unsigned short __b) {
return __builtin_s390_vtm((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_vtm((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
static inline __ATTRS_o_ai int
vec_test_mask(__vector signed int __a, __vector unsigned int __b) {
return __builtin_s390_vtm((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_vtm((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
static inline __ATTRS_o_ai int
vec_test_mask(__vector signed long long __a, __vector unsigned long long __b) {
return __builtin_s390_vtm((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned long long __a,
__vector unsigned long long __b) {
return __builtin_s390_vtm((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
static inline __ATTRS_o_ai int
vec_test_mask(__vector signed __int128 __a, __vector unsigned __int128 __b) {
return __builtin_s390_vtm((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned __int128 __a,
__vector unsigned __int128 __b) {
return __builtin_s390_vtm((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
#if __ARCH__ >= 12
static inline __ATTRS_o_ai int
vec_test_mask(__vector float __a, __vector unsigned int __b) {
return __builtin_s390_vtm((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
#endif
static inline __ATTRS_o_ai int
vec_test_mask(__vector double __a, __vector unsigned long long __b) {
return __builtin_s390_vtm((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
/*-- vec_madd ---------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_madd(__vector float __a, __vector float __b, __vector float __c) {
return __builtin_s390_vfmasb(__a, __b, __c);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_madd(__vector double __a, __vector double __b, __vector double __c) {
return __builtin_s390_vfmadb(__a, __b, __c);
}
/*-- vec_msub ---------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_msub(__vector float __a, __vector float __b, __vector float __c) {
return __builtin_s390_vfmssb(__a, __b, __c);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_msub(__vector double __a, __vector double __b, __vector double __c) {
return __builtin_s390_vfmsdb(__a, __b, __c);
}
/*-- vec_nmadd ---------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_nmadd(__vector float __a, __vector float __b, __vector float __c) {
return __builtin_s390_vfnmasb(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector double
vec_nmadd(__vector double __a, __vector double __b, __vector double __c) {
return __builtin_s390_vfnmadb(__a, __b, __c);
}
#endif
/*-- vec_nmsub ---------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_nmsub(__vector float __a, __vector float __b, __vector float __c) {
return __builtin_s390_vfnmssb(__a, __b, __c);
}
static inline __ATTRS_o_ai __vector double
vec_nmsub(__vector double __a, __vector double __b, __vector double __c) {
return __builtin_s390_vfnmsdb(__a, __b, __c);
}
#endif
/*-- vec_sqrt ---------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_sqrt(__vector float __a) {
return __builtin_s390_vfsqsb(__a);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_sqrt(__vector double __a) {
return __builtin_s390_vfsqdb(__a);
}
/*-- vec_ld2f ---------------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_ai __vector double
vec_ld2f(const float *__ptr) {
typedef float __v2f32 __attribute__((__vector_size__(8)));
return __builtin_convertvector(*(const __v2f32 *)__ptr, __vector double);
}
/*-- vec_st2f ---------------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_ai void
vec_st2f(__vector double __a, float *__ptr) {
typedef float __v2f32 __attribute__((__vector_size__(8)));
*(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);
}
/*-- vec_ctd ----------------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector double
vec_ctd(__vector signed long long __a, int __b)
__constant_range(__b, 0, 31) {
__vector double __conv = __builtin_convertvector(__a, __vector double);
__conv *= ((__vector double)(__vector unsigned long long)
((0x3ffULL - __b) << 52));
return __conv;
}
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector double
vec_ctd(__vector unsigned long long __a, int __b)
__constant_range(__b, 0, 31) {
__vector double __conv = __builtin_convertvector(__a, __vector double);
__conv *= ((__vector double)(__vector unsigned long long)
((0x3ffULL - __b) << 52));
return __conv;
}
/*-- vec_ctsl ---------------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector signed long long
vec_ctsl(__vector double __a, int __b)
__constant_range(__b, 0, 31) {
__a *= ((__vector double)(__vector unsigned long long)
((0x3ffULL + __b) << 52));
return __builtin_convertvector(__a, __vector signed long long);
}
/*-- vec_ctul ---------------------------------------------------------------*/
// This prototype is deprecated.
static inline __ATTRS_o_ai __vector unsigned long long
vec_ctul(__vector double __a, int __b)
__constant_range(__b, 0, 31) {
__a *= ((__vector double)(__vector unsigned long long)
((0x3ffULL + __b) << 52));
return __builtin_convertvector(__a, __vector unsigned long long);
}
/*-- vec_doublee ------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_ai __vector double
vec_doublee(__vector float __a) {
typedef float __v2f32 __attribute__((__vector_size__(8)));
__v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2);
return __builtin_convertvector(__pack, __vector double);
}
#endif
/*-- vec_floate -------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_ai __vector float
vec_floate(__vector double __a) {
typedef float __v2f32 __attribute__((__vector_size__(8)));
__v2f32 __pack = __builtin_convertvector(__a, __v2f32);
return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1);
}
#endif
/*-- vec_double -------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector double
vec_double(__vector signed long long __a) {
return __builtin_convertvector(__a, __vector double);
}
static inline __ATTRS_o_ai __vector double
vec_double(__vector unsigned long long __a) {
return __builtin_convertvector(__a, __vector double);
}
/*-- vec_float --------------------------------------------------------------*/
#if __ARCH__ >= 13
static inline __ATTRS_o_ai __vector float
vec_float(__vector signed int __a) {
return __builtin_convertvector(__a, __vector float);
}
static inline __ATTRS_o_ai __vector float
vec_float(__vector unsigned int __a) {
return __builtin_convertvector(__a, __vector float);
}
#endif
/*-- vec_signed -------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed long long
vec_signed(__vector double __a) {
return __builtin_convertvector(__a, __vector signed long long);
}
#if __ARCH__ >= 13
static inline __ATTRS_o_ai __vector signed int
vec_signed(__vector float __a) {
return __builtin_convertvector(__a, __vector signed int);
}
#endif
/*-- vec_unsigned -----------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned long long
vec_unsigned(__vector double __a) {
return __builtin_convertvector(__a, __vector unsigned long long);
}
#if __ARCH__ >= 13
static inline __ATTRS_o_ai __vector unsigned int
vec_unsigned(__vector float __a) {
return __builtin_convertvector(__a, __vector unsigned int);
}
#endif
/*-- vec_roundp -------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_roundp(__vector float __a) {
return __builtin_s390_vfisb(__a, 4, 6);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_roundp(__vector double __a) {
return __builtin_s390_vfidb(__a, 4, 6);
}
/*-- vec_ceil ---------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_ceil(__vector float __a) {
// On this platform, vec_ceil never triggers the IEEE-inexact exception.
return __builtin_s390_vfisb(__a, 4, 6);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_ceil(__vector double __a) {
// On this platform, vec_ceil never triggers the IEEE-inexact exception.
return __builtin_s390_vfidb(__a, 4, 6);
}
/*-- vec_roundm -------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_roundm(__vector float __a) {
return __builtin_s390_vfisb(__a, 4, 7);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_roundm(__vector double __a) {
return __builtin_s390_vfidb(__a, 4, 7);
}
/*-- vec_floor --------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_floor(__vector float __a) {
// On this platform, vec_floor never triggers the IEEE-inexact exception.
return __builtin_s390_vfisb(__a, 4, 7);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_floor(__vector double __a) {
// On this platform, vec_floor never triggers the IEEE-inexact exception.
return __builtin_s390_vfidb(__a, 4, 7);
}
/*-- vec_roundz -------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_roundz(__vector float __a) {
return __builtin_s390_vfisb(__a, 4, 5);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_roundz(__vector double __a) {
return __builtin_s390_vfidb(__a, 4, 5);
}
/*-- vec_trunc --------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_trunc(__vector float __a) {
// On this platform, vec_trunc never triggers the IEEE-inexact exception.
return __builtin_s390_vfisb(__a, 4, 5);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_trunc(__vector double __a) {
// On this platform, vec_trunc never triggers the IEEE-inexact exception.
return __builtin_s390_vfidb(__a, 4, 5);
}
/*-- vec_roundc -------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_roundc(__vector float __a) {
return __builtin_s390_vfisb(__a, 4, 0);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_roundc(__vector double __a) {
return __builtin_s390_vfidb(__a, 4, 0);
}
/*-- vec_rint ---------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_rint(__vector float __a) {
// vec_rint may trigger the IEEE-inexact exception.
return __builtin_s390_vfisb(__a, 0, 0);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_rint(__vector double __a) {
// vec_rint may trigger the IEEE-inexact exception.
return __builtin_s390_vfidb(__a, 0, 0);
}
/*-- vec_round --------------------------------------------------------------*/
#if __ARCH__ >= 12
static inline __ATTRS_o_ai __vector float
vec_round(__vector float __a) {
return __builtin_s390_vfisb(__a, 4, 4);
}
#endif
static inline __ATTRS_o_ai __vector double
vec_round(__vector double __a) {
return __builtin_s390_vfidb(__a, 4, 4);
}
/*-- vec_fp_test_data_class -------------------------------------------------*/
#if __ARCH__ >= 12
extern __ATTRS_o __vector __bool int
vec_fp_test_data_class(__vector float __a, int __b, int *__c)
__constant_range(__b, 0, 4095);
extern __ATTRS_o __vector __bool long long
vec_fp_test_data_class(__vector double __a, int __b, int *__c)
__constant_range(__b, 0, 4095);
#define vec_fp_test_data_class(X, Y, Z) \
((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \
__extension__ ({ \
__vector unsigned char __res; \
__vector unsigned char __x = (__vector unsigned char)(X); \
int *__z = (Z); \
switch (sizeof ((X)[0])) { \
case 4: __res = (__vector unsigned char) \
__builtin_s390_vftcisb((__vector float)__x, (Y), __z); \
break; \
default: __res = (__vector unsigned char) \
__builtin_s390_vftcidb((__vector double)__x, (Y), __z); \
break; \
} __res; }))
#else
#define vec_fp_test_data_class(X, Y, Z) \
((__vector __bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
#endif
#define __VEC_CLASS_FP_ZERO_P (1 << 11)
#define __VEC_CLASS_FP_ZERO_N (1 << 10)
#define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N)
#define __VEC_CLASS_FP_NORMAL_P (1 << 9)
#define __VEC_CLASS_FP_NORMAL_N (1 << 8)
#define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \
__VEC_CLASS_FP_NORMAL_N)
#define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7)
#define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6)
#define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
__VEC_CLASS_FP_SUBNORMAL_N)
#define __VEC_CLASS_FP_INFINITY_P (1 << 5)
#define __VEC_CLASS_FP_INFINITY_N (1 << 4)
#define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \
__VEC_CLASS_FP_INFINITY_N)
#define __VEC_CLASS_FP_QNAN_P (1 << 3)
#define __VEC_CLASS_FP_QNAN_N (1 << 2)
#define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N)
#define __VEC_CLASS_FP_SNAN_P (1 << 1)
#define __VEC_CLASS_FP_SNAN_N (1 << 0)
#define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N)
#define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN)
#define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \
__VEC_CLASS_FP_SUBNORMAL | \
__VEC_CLASS_FP_ZERO | \
__VEC_CLASS_FP_INFINITY)
/*-- vec_extend_to_fp32_hi --------------------------------------------------*/
#if __ARCH__ >= 14
#define vec_extend_to_fp32_hi(X, W) \
((__vector float)__builtin_s390_vclfnhs((X), (W)));
#endif
/*-- vec_extend_to_fp32_hi --------------------------------------------------*/
#if __ARCH__ >= 14
#define vec_extend_to_fp32_lo(X, W) \
((__vector float)__builtin_s390_vclfnls((X), (W)));
#endif
/*-- vec_round_from_fp32 ----------------------------------------------------*/
#if __ARCH__ >= 14
#define vec_round_from_fp32(X, Y, W) \
((__vector unsigned short)__builtin_s390_vcrnfs((X), (Y), (W)));
#endif
/*-- vec_convert_to_fp16 ----------------------------------------------------*/
#if __ARCH__ >= 14
#define vec_convert_to_fp16(X, W) \
((__vector unsigned short)__builtin_s390_vcfn((X), (W)));
#endif
/*-- vec_convert_from_fp16 --------------------------------------------------*/
#if __ARCH__ >= 14
#define vec_convert_from_fp16(X, W) \
((__vector unsigned short)__builtin_s390_vcnf((X), (W)));
#endif
/*-- vec_cp_until_zero ------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_cp_until_zero(__vector signed char __a) {
return ((__vector signed char)
__builtin_s390_vistrb((__vector unsigned char)__a));
}
static inline __ATTRS_o_ai __vector __bool char
vec_cp_until_zero(__vector __bool char __a) {
return ((__vector __bool char)
__builtin_s390_vistrb((__vector unsigned char)__a));
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cp_until_zero(__vector unsigned char __a) {
return __builtin_s390_vistrb(__a);
}
static inline __ATTRS_o_ai __vector signed short
vec_cp_until_zero(__vector signed short __a) {
return ((__vector signed short)
__builtin_s390_vistrh((__vector unsigned short)__a));
}
static inline __ATTRS_o_ai __vector __bool short
vec_cp_until_zero(__vector __bool short __a) {
return ((__vector __bool short)
__builtin_s390_vistrh((__vector unsigned short)__a));
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cp_until_zero(__vector unsigned short __a) {
return __builtin_s390_vistrh(__a);
}
static inline __ATTRS_o_ai __vector signed int
vec_cp_until_zero(__vector signed int __a) {
return ((__vector signed int)
__builtin_s390_vistrf((__vector unsigned int)__a));
}
static inline __ATTRS_o_ai __vector __bool int
vec_cp_until_zero(__vector __bool int __a) {
return ((__vector __bool int)
__builtin_s390_vistrf((__vector unsigned int)__a));
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cp_until_zero(__vector unsigned int __a) {
return __builtin_s390_vistrf(__a);
}
/*-- vec_cp_until_zero_cc ---------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_cp_until_zero_cc(__vector signed char __a, int *__cc) {
return (__vector signed char)
__builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
}
static inline __ATTRS_o_ai __vector __bool char
vec_cp_until_zero_cc(__vector __bool char __a, int *__cc) {
return (__vector __bool char)
__builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cp_until_zero_cc(__vector unsigned char __a, int *__cc) {
return __builtin_s390_vistrbs(__a, __cc);
}
static inline __ATTRS_o_ai __vector signed short
vec_cp_until_zero_cc(__vector signed short __a, int *__cc) {
return (__vector signed short)
__builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
}
static inline __ATTRS_o_ai __vector __bool short
vec_cp_until_zero_cc(__vector __bool short __a, int *__cc) {
return (__vector __bool short)
__builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cp_until_zero_cc(__vector unsigned short __a, int *__cc) {
return __builtin_s390_vistrhs(__a, __cc);
}
static inline __ATTRS_o_ai __vector signed int
vec_cp_until_zero_cc(__vector signed int __a, int *__cc) {
return (__vector signed int)
__builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
}
static inline __ATTRS_o_ai __vector __bool int
vec_cp_until_zero_cc(__vector __bool int __a, int *__cc) {
return (__vector __bool int)
__builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cp_until_zero_cc(__vector unsigned int __a, int *__cc) {
return __builtin_s390_vistrfs(__a, __cc);
}
/*-- vec_cmpeq_idx ----------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_idx(__vector signed char __a, __vector signed char __b) {
return (__vector signed char)
__builtin_s390_vfeeb((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx(__vector __bool char __a, __vector __bool char __b) {
return __builtin_s390_vfeeb((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vfeeb(__a, __b);
}
static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_idx(__vector signed short __a, __vector signed short __b) {
return (__vector signed short)
__builtin_s390_vfeeh((__vector unsigned short)__a,
(__vector unsigned short)__b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx(__vector __bool short __a, __vector __bool short __b) {
return __builtin_s390_vfeeh((__vector unsigned short)__a,
(__vector unsigned short)__b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_vfeeh(__a, __b);
}
static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_idx(__vector signed int __a, __vector signed int __b) {
return (__vector signed int)
__builtin_s390_vfeef((__vector unsigned int)__a,
(__vector unsigned int)__b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx(__vector __bool int __a, __vector __bool int __b) {
return __builtin_s390_vfeef((__vector unsigned int)__a,
(__vector unsigned int)__b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_vfeef(__a, __b);
}
/*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
return (__vector signed char)
__builtin_s390_vfeebs((__vector unsigned char)__a,
(__vector unsigned char)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
return __builtin_s390_vfeebs((__vector unsigned char)__a,
(__vector unsigned char)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
int *__cc) {
return __builtin_s390_vfeebs(__a, __b, __cc);
}
static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_idx_cc(__vector signed short __a, __vector signed short __b,
int *__cc) {
return (__vector signed short)
__builtin_s390_vfeehs((__vector unsigned short)__a,
(__vector unsigned short)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx_cc(__vector __bool short __a, __vector __bool short __b, int *__cc) {
return __builtin_s390_vfeehs((__vector unsigned short)__a,
(__vector unsigned short)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
int *__cc) {
return __builtin_s390_vfeehs(__a, __b, __cc);
}
static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
return (__vector signed int)
__builtin_s390_vfeefs((__vector unsigned int)__a,
(__vector unsigned int)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
return __builtin_s390_vfeefs((__vector unsigned int)__a,
(__vector unsigned int)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
int *__cc) {
return __builtin_s390_vfeefs(__a, __b, __cc);
}
/*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_or_0_idx(__vector signed char __a, __vector signed char __b) {
return (__vector signed char)
__builtin_s390_vfeezb((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
return __builtin_s390_vfeezb((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vfeezb(__a, __b);
}
static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_or_0_idx(__vector signed short __a, __vector signed short __b) {
return (__vector signed short)
__builtin_s390_vfeezh((__vector unsigned short)__a,
(__vector unsigned short)__b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
return __builtin_s390_vfeezh((__vector unsigned short)__a,
(__vector unsigned short)__b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_vfeezh(__a, __b);
}
static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_or_0_idx(__vector signed int __a, __vector signed int __b) {
return (__vector signed int)
__builtin_s390_vfeezf((__vector unsigned int)__a,
(__vector unsigned int)__b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
return __builtin_s390_vfeezf((__vector unsigned int)__a,
(__vector unsigned int)__b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_vfeezf(__a, __b);
}
/*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
int *__cc) {
return (__vector signed char)
__builtin_s390_vfeezbs((__vector unsigned char)__a,
(__vector unsigned char)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
int *__cc) {
return __builtin_s390_vfeezbs((__vector unsigned char)__a,
(__vector unsigned char)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
int *__cc) {
return __builtin_s390_vfeezbs(__a, __b, __cc);
}
static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
int *__cc) {
return (__vector signed short)
__builtin_s390_vfeezhs((__vector unsigned short)__a,
(__vector unsigned short)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
int *__cc) {
return __builtin_s390_vfeezhs((__vector unsigned short)__a,
(__vector unsigned short)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
int *__cc) {
return __builtin_s390_vfeezhs(__a, __b, __cc);
}
static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
int *__cc) {
return (__vector signed int)
__builtin_s390_vfeezfs((__vector unsigned int)__a,
(__vector unsigned int)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
int *__cc) {
return __builtin_s390_vfeezfs((__vector unsigned int)__a,
(__vector unsigned int)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
int *__cc) {
return __builtin_s390_vfeezfs(__a, __b, __cc);
}
/*-- vec_cmpne_idx ----------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_cmpne_idx(__vector signed char __a, __vector signed char __b) {
return (__vector signed char)
__builtin_s390_vfeneb((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx(__vector __bool char __a, __vector __bool char __b) {
return __builtin_s390_vfeneb((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vfeneb(__a, __b);
}
static inline __ATTRS_o_ai __vector signed short
vec_cmpne_idx(__vector signed short __a, __vector signed short __b) {
return (__vector signed short)
__builtin_s390_vfeneh((__vector unsigned short)__a,
(__vector unsigned short)__b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx(__vector __bool short __a, __vector __bool short __b) {
return __builtin_s390_vfeneh((__vector unsigned short)__a,
(__vector unsigned short)__b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_vfeneh(__a, __b);
}
static inline __ATTRS_o_ai __vector signed int
vec_cmpne_idx(__vector signed int __a, __vector signed int __b) {
return (__vector signed int)
__builtin_s390_vfenef((__vector unsigned int)__a,
(__vector unsigned int)__b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx(__vector __bool int __a, __vector __bool int __b) {
return __builtin_s390_vfenef((__vector unsigned int)__a,
(__vector unsigned int)__b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_vfenef(__a, __b);
}
/*-- vec_cmpne_idx_cc -------------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_cmpne_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
return (__vector signed char)
__builtin_s390_vfenebs((__vector unsigned char)__a,
(__vector unsigned char)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
return __builtin_s390_vfenebs((__vector unsigned char)__a,
(__vector unsigned char)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
int *__cc) {
return __builtin_s390_vfenebs(__a, __b, __cc);
}
static inline __ATTRS_o_ai __vector signed short
vec_cmpne_idx_cc(__vector signed short __a, __vector signed short __b,
int *__cc) {
return (__vector signed short)
__builtin_s390_vfenehs((__vector unsigned short)__a,
(__vector unsigned short)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx_cc(__vector __bool short __a, __vector __bool short __b,
int *__cc) {
return __builtin_s390_vfenehs((__vector unsigned short)__a,
(__vector unsigned short)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
int *__cc) {
return __builtin_s390_vfenehs(__a, __b, __cc);
}
static inline __ATTRS_o_ai __vector signed int
vec_cmpne_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
return (__vector signed int)
__builtin_s390_vfenefs((__vector unsigned int)__a,
(__vector unsigned int)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
return __builtin_s390_vfenefs((__vector unsigned int)__a,
(__vector unsigned int)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
int *__cc) {
return __builtin_s390_vfenefs(__a, __b, __cc);
}
/*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_cmpne_or_0_idx(__vector signed char __a, __vector signed char __b) {
return (__vector signed char)
__builtin_s390_vfenezb((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
return __builtin_s390_vfenezb((__vector unsigned char)__a,
(__vector unsigned char)__b);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vfenezb(__a, __b);
}
static inline __ATTRS_o_ai __vector signed short
vec_cmpne_or_0_idx(__vector signed short __a, __vector signed short __b) {
return (__vector signed short)
__builtin_s390_vfenezh((__vector unsigned short)__a,
(__vector unsigned short)__b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
return __builtin_s390_vfenezh((__vector unsigned short)__a,
(__vector unsigned short)__b);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_vfenezh(__a, __b);
}
static inline __ATTRS_o_ai __vector signed int
vec_cmpne_or_0_idx(__vector signed int __a, __vector signed int __b) {
return (__vector signed int)
__builtin_s390_vfenezf((__vector unsigned int)__a,
(__vector unsigned int)__b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
return __builtin_s390_vfenezf((__vector unsigned int)__a,
(__vector unsigned int)__b);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_vfenezf(__a, __b);
}
/*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_cmpne_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
int *__cc) {
return (__vector signed char)
__builtin_s390_vfenezbs((__vector unsigned char)__a,
(__vector unsigned char)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
int *__cc) {
return __builtin_s390_vfenezbs((__vector unsigned char)__a,
(__vector unsigned char)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
int *__cc) {
return __builtin_s390_vfenezbs(__a, __b, __cc);
}
static inline __ATTRS_o_ai __vector signed short
vec_cmpne_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
int *__cc) {
return (__vector signed short)
__builtin_s390_vfenezhs((__vector unsigned short)__a,
(__vector unsigned short)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
int *__cc) {
return __builtin_s390_vfenezhs((__vector unsigned short)__a,
(__vector unsigned short)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
int *__cc) {
return __builtin_s390_vfenezhs(__a, __b, __cc);
}
static inline __ATTRS_o_ai __vector signed int
vec_cmpne_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
int *__cc) {
return (__vector signed int)
__builtin_s390_vfenezfs((__vector unsigned int)__a,
(__vector unsigned int)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
int *__cc) {
return __builtin_s390_vfenezfs((__vector unsigned int)__a,
(__vector unsigned int)__b, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
int *__cc) {
return __builtin_s390_vfenezfs(__a, __b, __cc);
}
/*-- vec_cmprg --------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector __bool char
vec_cmprg(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c) {
return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);
}
static inline __ATTRS_o_ai __vector __bool short
vec_cmprg(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned short __c) {
return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 4);
}
static inline __ATTRS_o_ai __vector __bool int
vec_cmprg(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned int __c) {
return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);
}
/*-- vec_cmprg_cc -----------------------------------------------------------*/
static inline __ATTRS_o_ai __vector __bool char
vec_cmprg_cc(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c, int *__cc) {
return (__vector __bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);
}
static inline __ATTRS_o_ai __vector __bool short
vec_cmprg_cc(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned short __c, int *__cc) {
return (__vector __bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);
}
static inline __ATTRS_o_ai __vector __bool int
vec_cmprg_cc(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned int __c, int *__cc) {
return (__vector __bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);
}
/*-- vec_cmprg_idx ----------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned char
vec_cmprg_idx(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c) {
return __builtin_s390_vstrcb(__a, __b, __c, 0);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmprg_idx(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned short __c) {
return __builtin_s390_vstrch(__a, __b, __c, 0);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmprg_idx(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned int __c) {
return __builtin_s390_vstrcf(__a, __b, __c, 0);
}
/*-- vec_cmprg_idx_cc -------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned char
vec_cmprg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmprg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned short __c, int *__cc) {
return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmprg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned int __c, int *__cc) {
return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);
}
/*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned char
vec_cmprg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c) {
return __builtin_s390_vstrczb(__a, __b, __c, 0);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmprg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned short __c) {
return __builtin_s390_vstrczh(__a, __b, __c, 0);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmprg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned int __c) {
return __builtin_s390_vstrczf(__a, __b, __c, 0);
}
/*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned char
vec_cmprg_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmprg_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned short __c, int *__cc) {
return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmprg_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned int __c, int *__cc) {
return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);
}
/*-- vec_cmpnrg -------------------------------------------------------------*/
static inline __ATTRS_o_ai __vector __bool char
vec_cmpnrg(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c) {
return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);
}
static inline __ATTRS_o_ai __vector __bool short
vec_cmpnrg(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned short __c) {
return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 12);
}
static inline __ATTRS_o_ai __vector __bool int
vec_cmpnrg(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned int __c) {
return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);
}
/*-- vec_cmpnrg_cc ----------------------------------------------------------*/
static inline __ATTRS_o_ai __vector __bool char
vec_cmpnrg_cc(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c, int *__cc) {
return (__vector __bool char)
__builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);
}
static inline __ATTRS_o_ai __vector __bool short
vec_cmpnrg_cc(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned short __c, int *__cc) {
return (__vector __bool short)
__builtin_s390_vstrchs(__a, __b, __c, 12, __cc);
}
static inline __ATTRS_o_ai __vector __bool int
vec_cmpnrg_cc(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned int __c, int *__cc) {
return (__vector __bool int)
__builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);
}
/*-- vec_cmpnrg_idx ---------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpnrg_idx(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c) {
return __builtin_s390_vstrcb(__a, __b, __c, 8);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpnrg_idx(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned short __c) {
return __builtin_s390_vstrch(__a, __b, __c, 8);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpnrg_idx(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned int __c) {
return __builtin_s390_vstrcf(__a, __b, __c, 8);
}
/*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpnrg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpnrg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned short __c, int *__cc) {
return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpnrg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned int __c, int *__cc) {
return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);
}
/*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpnrg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c) {
return __builtin_s390_vstrczb(__a, __b, __c, 8);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpnrg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned short __c) {
return __builtin_s390_vstrczh(__a, __b, __c, 8);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpnrg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned int __c) {
return __builtin_s390_vstrczf(__a, __b, __c, 8);
}
/*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
static inline __ATTRS_o_ai __vector unsigned char
vec_cmpnrg_or_0_idx_cc(__vector unsigned char __a,
__vector unsigned char __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_cmpnrg_or_0_idx_cc(__vector unsigned short __a,
__vector unsigned short __b,
__vector unsigned short __c, int *__cc) {
return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_cmpnrg_or_0_idx_cc(__vector unsigned int __a,
__vector unsigned int __b,
__vector unsigned int __c, int *__cc) {
return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);
}
/*-- vec_find_any_eq --------------------------------------------------------*/
static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector signed char __a, __vector signed char __b) {
return (__vector __bool char)
__builtin_s390_vfaeb((__vector unsigned char)__a,
(__vector unsigned char)__b, 4);
}
static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector __bool char __a, __vector __bool char __b) {
return (__vector __bool char)
__builtin_s390_vfaeb((__vector unsigned char)__a,
(__vector unsigned char)__b, 4);
}
static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 4);
}
static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector signed short __a, __vector signed short __b) {
return (__vector __bool short)
__builtin_s390_vfaeh((__vector unsigned short)__a,
(__vector unsigned short)__b, 4);
}
static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector __bool short __a, __vector __bool short __b) {
return (__vector __bool short)
__builtin_s390_vfaeh((__vector unsigned short)__a,
(__vector unsigned short)__b, 4);
}
static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 4);
}
static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector signed int __a, __vector signed int __b) {
return (__vector __bool int)
__builtin_s390_vfaef((__vector unsigned int)__a,
(__vector unsigned int)__b, 4);
}
static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector __bool int __a, __vector __bool int __b) {
return (__vector __bool int)
__builtin_s390_vfaef((__vector unsigned int)__a,
(__vector unsigned int)__b, 4);
}
static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 4);
}
/*-- vec_find_any_eq_cc -----------------------------------------------------*/
static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq_cc(__vector signed char __a, __vector signed char __b,
int *__cc) {
return (__vector __bool char)
__builtin_s390_vfaebs((__vector unsigned char)__a,
(__vector unsigned char)__b, 4, __cc);
}
static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq_cc(__vector __bool char __a, __vector __bool char __b,
int *__cc) {
return (__vector __bool char)
__builtin_s390_vfaebs((__vector unsigned char)__a,
(__vector unsigned char)__b, 4, __cc);
}
static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq_cc(__vector unsigned char __a, __vector unsigned char __b,
int *__cc) {
return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);
}
static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq_cc(__vector signed short __a, __vector signed short __b,
int *__cc) {
return (__vector __bool short)
__builtin_s390_vfaehs((__vector unsigned short)__a,
(__vector unsigned short)__b, 4, __cc);
}
static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq_cc(__vector __bool short __a, __vector __bool short __b,
int *__cc) {
return (__vector __bool short)
__builtin_s390_vfaehs((__vector unsigned short)__a,
(__vector unsigned short)__b, 4, __cc);
}
static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq_cc(__vector unsigned short __a, __vector unsigned short __b,
int *__cc) {
return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);
}
static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq_cc(__vector signed int __a, __vector signed int __b,
int *__cc) {
return (__vector __bool int)
__builtin_s390_vfaefs((__vector unsigned int)__a,
(__vector unsigned int)__b, 4, __cc);
}
static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq_cc(__vector __bool int __a, __vector __bool int __b,
int *__cc) {
return (__vector __bool int)
__builtin_s390_vfaefs((__vector unsigned int)__a,
(__vector unsigned int)__b, 4, __cc);
}
static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq_cc(__vector unsigned int __a, __vector unsigned int __b,
int *__cc) {
return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);
}
/*-- vec_find_any_eq_idx ----------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_idx(__vector signed char __a, __vector signed char __b) {
return (__vector signed char)
__builtin_s390_vfaeb((__vector unsigned char)__a,
(__vector unsigned char)__b, 0);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx(__vector __bool char __a, __vector __bool char __b) {
return __builtin_s390_vfaeb((__vector unsigned char)__a,
(__vector unsigned char)__b, 0);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vfaeb(__a, __b, 0);
}
static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_idx(__vector signed short __a, __vector signed short __b) {
return (__vector signed short)
__builtin_s390_vfaeh((__vector unsigned short)__a,
(__vector unsigned short)__b, 0);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx(__vector __bool short __a, __vector __bool short __b) {
return __builtin_s390_vfaeh((__vector unsigned short)__a,
(__vector unsigned short)__b, 0);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_vfaeh(__a, __b, 0);
}
static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_idx(__vector signed int __a, __vector signed int __b) {
return (__vector signed int)
__builtin_s390_vfaef((__vector unsigned int)__a,
(__vector unsigned int)__b, 0);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx(__vector __bool int __a, __vector __bool int __b) {
return __builtin_s390_vfaef((__vector unsigned int)__a,
(__vector unsigned int)__b, 0);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_vfaef(__a, __b, 0);
}
/*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_idx_cc(__vector signed char __a,
__vector signed char __b, int *__cc) {
return (__vector signed char)
__builtin_s390_vfaebs((__vector unsigned char)__a,
(__vector unsigned char)__b, 0, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx_cc(__vector __bool char __a,
__vector __bool char __b, int *__cc) {
return __builtin_s390_vfaebs((__vector unsigned char)__a,
(__vector unsigned char)__b, 0, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx_cc(__vector unsigned char __a,
__vector unsigned char __b, int *__cc) {
return __builtin_s390_vfaebs(__a, __b, 0, __cc);
}
static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_idx_cc(__vector signed short __a,
__vector signed short __b, int *__cc) {
return (__vector signed short)
__builtin_s390_vfaehs((__vector unsigned short)__a,
(__vector unsigned short)__b, 0, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx_cc(__vector __bool short __a,
__vector __bool short __b, int *__cc) {
return __builtin_s390_vfaehs((__vector unsigned short)__a,
(__vector unsigned short)__b, 0, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx_cc(__vector unsigned short __a,
__vector unsigned short __b, int *__cc) {
return __builtin_s390_vfaehs(__a, __b, 0, __cc);
}
static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_idx_cc(__vector signed int __a,
__vector signed int __b, int *__cc) {
return (__vector signed int)
__builtin_s390_vfaefs((__vector unsigned int)__a,
(__vector unsigned int)__b, 0, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx_cc(__vector __bool int __a,
__vector __bool int __b, int *__cc) {
return __builtin_s390_vfaefs((__vector unsigned int)__a,
(__vector unsigned int)__b, 0, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx_cc(__vector unsigned int __a,
__vector unsigned int __b, int *__cc) {
return __builtin_s390_vfaefs(__a, __b, 0, __cc);
}
/*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_or_0_idx(__vector signed char __a,
__vector signed char __b) {
return (__vector signed char)
__builtin_s390_vfaezb((__vector unsigned char)__a,
(__vector unsigned char)__b, 0);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_or_0_idx(__vector __bool char __a,
__vector __bool char __b) {
return __builtin_s390_vfaezb((__vector unsigned char)__a,
(__vector unsigned char)__b, 0);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_or_0_idx(__vector unsigned char __a,
__vector unsigned char __b) {
return __builtin_s390_vfaezb(__a, __b, 0);
}
static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_or_0_idx(__vector signed short __a,
__vector signed short __b) {
return (__vector signed short)
__builtin_s390_vfaezh((__vector unsigned short)__a,
(__vector unsigned short)__b, 0);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_or_0_idx(__vector __bool short __a,
__vector __bool short __b) {
return __builtin_s390_vfaezh((__vector unsigned short)__a,
(__vector unsigned short)__b, 0);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_or_0_idx(__vector unsigned short __a,
__vector unsigned short __b) {
return __builtin_s390_vfaezh(__a, __b, 0);
}
static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_or_0_idx(__vector signed int __a,
__vector signed int __b) {
return (__vector signed int)
__builtin_s390_vfaezf((__vector unsigned int)__a,
(__vector unsigned int)__b, 0);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_or_0_idx(__vector __bool int __a,
__vector __bool int __b) {
return __builtin_s390_vfaezf((__vector unsigned int)__a,
(__vector unsigned int)__b, 0);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_or_0_idx(__vector unsigned int __a,
__vector unsigned int __b) {
return __builtin_s390_vfaezf(__a, __b, 0);
}
/*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_or_0_idx_cc(__vector signed char __a,
__vector signed char __b, int *__cc) {
return (__vector signed char)
__builtin_s390_vfaezbs((__vector unsigned char)__a,
(__vector unsigned char)__b, 0, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_or_0_idx_cc(__vector __bool char __a,
__vector __bool char __b, int *__cc) {
return __builtin_s390_vfaezbs((__vector unsigned char)__a,
(__vector unsigned char)__b, 0, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_or_0_idx_cc(__vector unsigned char __a,
__vector unsigned char __b, int *__cc) {
return __builtin_s390_vfaezbs(__a, __b, 0, __cc);
}
static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_or_0_idx_cc(__vector signed short __a,
__vector signed short __b, int *__cc) {
return (__vector signed short)
__builtin_s390_vfaezhs((__vector unsigned short)__a,
(__vector unsigned short)__b, 0, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_or_0_idx_cc(__vector __bool short __a,
__vector __bool short __b, int *__cc) {
return __builtin_s390_vfaezhs((__vector unsigned short)__a,
(__vector unsigned short)__b, 0, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_or_0_idx_cc(__vector unsigned short __a,
__vector unsigned short __b, int *__cc) {
return __builtin_s390_vfaezhs(__a, __b, 0, __cc);
}
static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_or_0_idx_cc(__vector signed int __a,
__vector signed int __b, int *__cc) {
return (__vector signed int)
__builtin_s390_vfaezfs((__vector unsigned int)__a,
(__vector unsigned int)__b, 0, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_or_0_idx_cc(__vector __bool int __a,
__vector __bool int __b, int *__cc) {
return __builtin_s390_vfaezfs((__vector unsigned int)__a,
(__vector unsigned int)__b, 0, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_or_0_idx_cc(__vector unsigned int __a,
__vector unsigned int __b, int *__cc) {
return __builtin_s390_vfaezfs(__a, __b, 0, __cc);
}
/*-- vec_find_any_ne --------------------------------------------------------*/
static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector signed char __a, __vector signed char __b) {
return (__vector __bool char)
__builtin_s390_vfaeb((__vector unsigned char)__a,
(__vector unsigned char)__b, 12);
}
static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector __bool char __a, __vector __bool char __b) {
return (__vector __bool char)
__builtin_s390_vfaeb((__vector unsigned char)__a,
(__vector unsigned char)__b, 12);
}
static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 12);
}
static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector signed short __a, __vector signed short __b) {
return (__vector __bool short)
__builtin_s390_vfaeh((__vector unsigned short)__a,
(__vector unsigned short)__b, 12);
}
static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector __bool short __a, __vector __bool short __b) {
return (__vector __bool short)
__builtin_s390_vfaeh((__vector unsigned short)__a,
(__vector unsigned short)__b, 12);
}
static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 12);
}
static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector signed int __a, __vector signed int __b) {
return (__vector __bool int)
__builtin_s390_vfaef((__vector unsigned int)__a,
(__vector unsigned int)__b, 12);
}
static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector __bool int __a, __vector __bool int __b) {
return (__vector __bool int)
__builtin_s390_vfaef((__vector unsigned int)__a,
(__vector unsigned int)__b, 12);
}
static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 12);
}
/*-- vec_find_any_ne_cc -----------------------------------------------------*/
static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne_cc(__vector signed char __a,
__vector signed char __b, int *__cc) {
return (__vector __bool char)
__builtin_s390_vfaebs((__vector unsigned char)__a,
(__vector unsigned char)__b, 12, __cc);
}
static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne_cc(__vector __bool char __a,
__vector __bool char __b, int *__cc) {
return (__vector __bool char)
__builtin_s390_vfaebs((__vector unsigned char)__a,
(__vector unsigned char)__b, 12, __cc);
}
static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne_cc(__vector unsigned char __a,
__vector unsigned char __b, int *__cc) {
return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);
}
static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne_cc(__vector signed short __a,
__vector signed short __b, int *__cc) {
return (__vector __bool short)
__builtin_s390_vfaehs((__vector unsigned short)__a,
(__vector unsigned short)__b, 12, __cc);
}
static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne_cc(__vector __bool short __a,
__vector __bool short __b, int *__cc) {
return (__vector __bool short)
__builtin_s390_vfaehs((__vector unsigned short)__a,
(__vector unsigned short)__b, 12, __cc);
}
static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne_cc(__vector unsigned short __a,
__vector unsigned short __b, int *__cc) {
return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);
}
static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne_cc(__vector signed int __a,
__vector signed int __b, int *__cc) {
return (__vector __bool int)
__builtin_s390_vfaefs((__vector unsigned int)__a,
(__vector unsigned int)__b, 12, __cc);
}
static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne_cc(__vector __bool int __a,
__vector __bool int __b, int *__cc) {
return (__vector __bool int)
__builtin_s390_vfaefs((__vector unsigned int)__a,
(__vector unsigned int)__b, 12, __cc);
}
static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne_cc(__vector unsigned int __a,
__vector unsigned int __b, int *__cc) {
return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);
}
/*-- vec_find_any_ne_idx ----------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_idx(__vector signed char __a, __vector signed char __b) {
return (__vector signed char)
__builtin_s390_vfaeb((__vector unsigned char)__a,
(__vector unsigned char)__b, 8);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx(__vector __bool char __a, __vector __bool char __b) {
return __builtin_s390_vfaeb((__vector unsigned char)__a,
(__vector unsigned char)__b, 8);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx(__vector unsigned char __a, __vector unsigned char __b) {
return __builtin_s390_vfaeb(__a, __b, 8);
}
static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_idx(__vector signed short __a, __vector signed short __b) {
return (__vector signed short)
__builtin_s390_vfaeh((__vector unsigned short)__a,
(__vector unsigned short)__b, 8);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx(__vector __bool short __a, __vector __bool short __b) {
return __builtin_s390_vfaeh((__vector unsigned short)__a,
(__vector unsigned short)__b, 8);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx(__vector unsigned short __a, __vector unsigned short __b) {
return __builtin_s390_vfaeh(__a, __b, 8);
}
static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_idx(__vector signed int __a, __vector signed int __b) {
return (__vector signed int)
__builtin_s390_vfaef((__vector unsigned int)__a,
(__vector unsigned int)__b, 8);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx(__vector __bool int __a, __vector __bool int __b) {
return __builtin_s390_vfaef((__vector unsigned int)__a,
(__vector unsigned int)__b, 8);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx(__vector unsigned int __a, __vector unsigned int __b) {
return __builtin_s390_vfaef(__a, __b, 8);
}
/*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_idx_cc(__vector signed char __a,
__vector signed char __b, int *__cc) {
return (__vector signed char)
__builtin_s390_vfaebs((__vector unsigned char)__a,
(__vector unsigned char)__b, 8, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx_cc(__vector __bool char __a,
__vector __bool char __b, int *__cc) {
return __builtin_s390_vfaebs((__vector unsigned char)__a,
(__vector unsigned char)__b, 8, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx_cc(__vector unsigned char __a,
__vector unsigned char __b,
int *__cc) {
return __builtin_s390_vfaebs(__a, __b, 8, __cc);
}
static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_idx_cc(__vector signed short __a,
__vector signed short __b, int *__cc) {
return (__vector signed short)
__builtin_s390_vfaehs((__vector unsigned short)__a,
(__vector unsigned short)__b, 8, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx_cc(__vector __bool short __a,
__vector __bool short __b, int *__cc) {
return __builtin_s390_vfaehs((__vector unsigned short)__a,
(__vector unsigned short)__b, 8, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx_cc(__vector unsigned short __a,
__vector unsigned short __b, int *__cc) {
return __builtin_s390_vfaehs(__a, __b, 8, __cc);
}
static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_idx_cc(__vector signed int __a,
__vector signed int __b, int *__cc) {
return (__vector signed int)
__builtin_s390_vfaefs((__vector unsigned int)__a,
(__vector unsigned int)__b, 8, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx_cc(__vector __bool int __a,
__vector __bool int __b, int *__cc) {
return __builtin_s390_vfaefs((__vector unsigned int)__a,
(__vector unsigned int)__b, 8, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx_cc(__vector unsigned int __a,
__vector unsigned int __b, int *__cc) {
return __builtin_s390_vfaefs(__a, __b, 8, __cc);
}
/*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_or_0_idx(__vector signed char __a,
__vector signed char __b) {
return (__vector signed char)
__builtin_s390_vfaezb((__vector unsigned char)__a,
(__vector unsigned char)__b, 8);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_or_0_idx(__vector __bool char __a,
__vector __bool char __b) {
return __builtin_s390_vfaezb((__vector unsigned char)__a,
(__vector unsigned char)__b, 8);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_or_0_idx(__vector unsigned char __a,
__vector unsigned char __b) {
return __builtin_s390_vfaezb(__a, __b, 8);
}
static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_or_0_idx(__vector signed short __a,
__vector signed short __b) {
return (__vector signed short)
__builtin_s390_vfaezh((__vector unsigned short)__a,
(__vector unsigned short)__b, 8);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_or_0_idx(__vector __bool short __a,
__vector __bool short __b) {
return __builtin_s390_vfaezh((__vector unsigned short)__a,
(__vector unsigned short)__b, 8);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_or_0_idx(__vector unsigned short __a,
__vector unsigned short __b) {
return __builtin_s390_vfaezh(__a, __b, 8);
}
static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_or_0_idx(__vector signed int __a,
__vector signed int __b) {
return (__vector signed int)
__builtin_s390_vfaezf((__vector unsigned int)__a,
(__vector unsigned int)__b, 8);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_or_0_idx(__vector __bool int __a,
__vector __bool int __b) {
return __builtin_s390_vfaezf((__vector unsigned int)__a,
(__vector unsigned int)__b, 8);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_or_0_idx(__vector unsigned int __a,
__vector unsigned int __b) {
return __builtin_s390_vfaezf(__a, __b, 8);
}
/*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_or_0_idx_cc(__vector signed char __a,
__vector signed char __b, int *__cc) {
return (__vector signed char)
__builtin_s390_vfaezbs((__vector unsigned char)__a,
(__vector unsigned char)__b, 8, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_or_0_idx_cc(__vector __bool char __a,
__vector __bool char __b, int *__cc) {
return __builtin_s390_vfaezbs((__vector unsigned char)__a,
(__vector unsigned char)__b, 8, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_or_0_idx_cc(__vector unsigned char __a,
__vector unsigned char __b, int *__cc) {
return __builtin_s390_vfaezbs(__a, __b, 8, __cc);
}
static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_or_0_idx_cc(__vector signed short __a,
__vector signed short __b, int *__cc) {
return (__vector signed short)
__builtin_s390_vfaezhs((__vector unsigned short)__a,
(__vector unsigned short)__b, 8, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_or_0_idx_cc(__vector __bool short __a,
__vector __bool short __b, int *__cc) {
return __builtin_s390_vfaezhs((__vector unsigned short)__a,
(__vector unsigned short)__b, 8, __cc);
}
static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_or_0_idx_cc(__vector unsigned short __a,
__vector unsigned short __b, int *__cc) {
return __builtin_s390_vfaezhs(__a, __b, 8, __cc);
}
static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_or_0_idx_cc(__vector signed int __a,
__vector signed int __b, int *__cc) {
return (__vector signed int)
__builtin_s390_vfaezfs((__vector unsigned int)__a,
(__vector unsigned int)__b, 8, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_or_0_idx_cc(__vector __bool int __a,
__vector __bool int __b, int *__cc) {
return __builtin_s390_vfaezfs((__vector unsigned int)__a,
(__vector unsigned int)__b, 8, __cc);
}
static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_or_0_idx_cc(__vector unsigned int __a,
__vector unsigned int __b, int *__cc) {
return __builtin_s390_vfaezfs(__a, __b, 8, __cc);
}
/*-- vec_search_string_cc ---------------------------------------------------*/
#if __ARCH__ >= 13
static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector signed char __a, __vector signed char __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrsb((__vector unsigned char)__a,
(__vector unsigned char)__b, __c, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector __bool char __a, __vector __bool char __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrsb((__vector unsigned char)__a,
(__vector unsigned char)__b, __c, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector unsigned char __a, __vector unsigned char __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrsb(__a, __b, __c, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector signed short __a, __vector signed short __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrsh((__vector unsigned short)__a,
(__vector unsigned short)__b, __c, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector __bool short __a, __vector __bool short __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrsh((__vector unsigned short)__a,
(__vector unsigned short)__b, __c, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector unsigned short __a, __vector unsigned short __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrsh(__a, __b, __c, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector signed int __a, __vector signed int __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrsf((__vector unsigned int)__a,
(__vector unsigned int)__b, __c, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector __bool int __a, __vector __bool int __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrsf((__vector unsigned int)__a,
(__vector unsigned int)__b, __c, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector unsigned int __a, __vector unsigned int __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrsf(__a, __b, __c, __cc);
}
#endif
/*-- vec_search_string_until_zero_cc ----------------------------------------*/
#if __ARCH__ >= 13
static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector signed char __a,
__vector signed char __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrszb((__vector unsigned char)__a,
(__vector unsigned char)__b, __c, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector __bool char __a,
__vector __bool char __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrszb((__vector unsigned char)__a,
(__vector unsigned char)__b, __c, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector unsigned char __a,
__vector unsigned char __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrszb(__a, __b, __c, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector signed short __a,
__vector signed short __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrszh((__vector unsigned short)__a,
(__vector unsigned short)__b, __c, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector __bool short __a,
__vector __bool short __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrszh((__vector unsigned short)__a,
(__vector unsigned short)__b, __c, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector unsigned short __a,
__vector unsigned short __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrszh(__a, __b, __c, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector signed int __a,
__vector signed int __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrszf((__vector unsigned int)__a,
(__vector unsigned int)__b, __c, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector __bool int __a,
__vector __bool int __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrszf((__vector unsigned int)__a,
(__vector unsigned int)__b, __c, __cc);
}
static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector unsigned int __a,
__vector unsigned int __b,
__vector unsigned char __c, int *__cc) {
return __builtin_s390_vstrszf(__a, __b, __c, __cc);
}
#endif
#undef __constant_pow2_range
#undef __constant_range
#undef __constant
#undef __ATTRS_o
#undef __ATTRS_o_ai
#undef __ATTRS_ai
#else
#error "Use -fzvector to enable vector extensions"
#endif
#endif /* _VECINTRIN_H */