Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /*===---- vecintrin.h - Vector intrinsics ----------------------------------===
  2.  *
  3.  * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4.  * See https://llvm.org/LICENSE.txt for license information.
  5.  * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6.  *
  7.  *===-----------------------------------------------------------------------===
  8.  */
  9.  
  10. #if defined(__s390x__) && defined(__VEC__)
  11.  
  12. #define __ATTRS_ai __attribute__((__always_inline__))
  13. #define __ATTRS_o __attribute__((__overloadable__))
  14. #define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
  15.  
  16. #define __constant(PARM) \
  17.   __attribute__((__enable_if__ ((PARM) == (PARM), \
  18.      "argument must be a constant integer")))
  19. #define __constant_range(PARM, LOW, HIGH) \
  20.   __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH), \
  21.      "argument must be a constant integer from " #LOW " to " #HIGH)))
  22. #define __constant_pow2_range(PARM, LOW, HIGH) \
  23.   __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH) && \
  24.                                 ((PARM) & ((PARM) - 1)) == 0, \
  25.      "argument must be a constant power of 2 from " #LOW " to " #HIGH)))
  26.  
  27. /*-- __lcbb -----------------------------------------------------------------*/
  28.  
  29. extern __ATTRS_o unsigned int
  30. __lcbb(const void *__ptr, unsigned short __len)
  31.   __constant_pow2_range(__len, 64, 4096);
  32.  
  33. #define __lcbb(X, Y) ((__typeof__((__lcbb)((X), (Y)))) \
  34.   __builtin_s390_lcbb((X), __builtin_constant_p((Y))? \
  35.                            ((Y) == 64 ? 0 : \
  36.                             (Y) == 128 ? 1 : \
  37.                             (Y) == 256 ? 2 : \
  38.                             (Y) == 512 ? 3 : \
  39.                             (Y) == 1024 ? 4 : \
  40.                             (Y) == 2048 ? 5 : \
  41.                             (Y) == 4096 ? 6 : 0) : 0))
  42.  
  43. /*-- vec_extract ------------------------------------------------------------*/
  44.  
  45. static inline __ATTRS_o_ai signed char
  46. vec_extract(__vector signed char __vec, int __index) {
  47.   return __vec[__index & 15];
  48. }
  49.  
  50. static inline __ATTRS_o_ai unsigned char
  51. vec_extract(__vector __bool char __vec, int __index) {
  52.   return __vec[__index & 15];
  53. }
  54.  
  55. static inline __ATTRS_o_ai unsigned char
  56. vec_extract(__vector unsigned char __vec, int __index) {
  57.   return __vec[__index & 15];
  58. }
  59.  
  60. static inline __ATTRS_o_ai signed short
  61. vec_extract(__vector signed short __vec, int __index) {
  62.   return __vec[__index & 7];
  63. }
  64.  
  65. static inline __ATTRS_o_ai unsigned short
  66. vec_extract(__vector __bool short __vec, int __index) {
  67.   return __vec[__index & 7];
  68. }
  69.  
  70. static inline __ATTRS_o_ai unsigned short
  71. vec_extract(__vector unsigned short __vec, int __index) {
  72.   return __vec[__index & 7];
  73. }
  74.  
  75. static inline __ATTRS_o_ai signed int
  76. vec_extract(__vector signed int __vec, int __index) {
  77.   return __vec[__index & 3];
  78. }
  79.  
  80. static inline __ATTRS_o_ai unsigned int
  81. vec_extract(__vector __bool int __vec, int __index) {
  82.   return __vec[__index & 3];
  83. }
  84.  
  85. static inline __ATTRS_o_ai unsigned int
  86. vec_extract(__vector unsigned int __vec, int __index) {
  87.   return __vec[__index & 3];
  88. }
  89.  
  90. static inline __ATTRS_o_ai signed long long
  91. vec_extract(__vector signed long long __vec, int __index) {
  92.   return __vec[__index & 1];
  93. }
  94.  
  95. static inline __ATTRS_o_ai unsigned long long
  96. vec_extract(__vector __bool long long __vec, int __index) {
  97.   return __vec[__index & 1];
  98. }
  99.  
  100. static inline __ATTRS_o_ai unsigned long long
  101. vec_extract(__vector unsigned long long __vec, int __index) {
  102.   return __vec[__index & 1];
  103. }
  104.  
  105. #if __ARCH__ >= 12
  106. static inline __ATTRS_o_ai float
  107. vec_extract(__vector float __vec, int __index) {
  108.   return __vec[__index & 3];
  109. }
  110. #endif
  111.  
  112. static inline __ATTRS_o_ai double
  113. vec_extract(__vector double __vec, int __index) {
  114.   return __vec[__index & 1];
  115. }
  116.  
  117. /*-- vec_insert -------------------------------------------------------------*/
  118.  
  119. static inline __ATTRS_o_ai __vector signed char
  120. vec_insert(signed char __scalar, __vector signed char __vec, int __index) {
  121.   __vec[__index & 15] = __scalar;
  122.   return __vec;
  123. }
  124.  
  125. // This prototype is deprecated.
  126. static inline __ATTRS_o_ai __vector unsigned char
  127. vec_insert(unsigned char __scalar, __vector __bool char __vec, int __index) {
  128.   __vector unsigned char __newvec = (__vector unsigned char)__vec;
  129.   __newvec[__index & 15] = (unsigned char)__scalar;
  130.   return __newvec;
  131. }
  132.  
  133. static inline __ATTRS_o_ai __vector unsigned char
  134. vec_insert(unsigned char __scalar, __vector unsigned char __vec, int __index) {
  135.   __vec[__index & 15] = __scalar;
  136.   return __vec;
  137. }
  138.  
  139. static inline __ATTRS_o_ai __vector signed short
  140. vec_insert(signed short __scalar, __vector signed short __vec, int __index) {
  141.   __vec[__index & 7] = __scalar;
  142.   return __vec;
  143. }
  144.  
  145. // This prototype is deprecated.
  146. static inline __ATTRS_o_ai __vector unsigned short
  147. vec_insert(unsigned short __scalar, __vector __bool short __vec,
  148.            int __index) {
  149.   __vector unsigned short __newvec = (__vector unsigned short)__vec;
  150.   __newvec[__index & 7] = (unsigned short)__scalar;
  151.   return __newvec;
  152. }
  153.  
  154. static inline __ATTRS_o_ai __vector unsigned short
  155. vec_insert(unsigned short __scalar, __vector unsigned short __vec,
  156.            int __index) {
  157.   __vec[__index & 7] = __scalar;
  158.   return __vec;
  159. }
  160.  
  161. static inline __ATTRS_o_ai __vector signed int
  162. vec_insert(signed int __scalar, __vector signed int __vec, int __index) {
  163.   __vec[__index & 3] = __scalar;
  164.   return __vec;
  165. }
  166.  
  167. // This prototype is deprecated.
  168. static inline __ATTRS_o_ai __vector unsigned int
  169. vec_insert(unsigned int __scalar, __vector __bool int __vec, int __index) {
  170.   __vector unsigned int __newvec = (__vector unsigned int)__vec;
  171.   __newvec[__index & 3] = __scalar;
  172.   return __newvec;
  173. }
  174.  
  175. static inline __ATTRS_o_ai __vector unsigned int
  176. vec_insert(unsigned int __scalar, __vector unsigned int __vec, int __index) {
  177.   __vec[__index & 3] = __scalar;
  178.   return __vec;
  179. }
  180.  
  181. static inline __ATTRS_o_ai __vector signed long long
  182. vec_insert(signed long long __scalar, __vector signed long long __vec,
  183.            int __index) {
  184.   __vec[__index & 1] = __scalar;
  185.   return __vec;
  186. }
  187.  
  188. // This prototype is deprecated.
  189. static inline __ATTRS_o_ai __vector unsigned long long
  190. vec_insert(unsigned long long __scalar, __vector __bool long long __vec,
  191.            int __index) {
  192.   __vector unsigned long long __newvec = (__vector unsigned long long)__vec;
  193.   __newvec[__index & 1] = __scalar;
  194.   return __newvec;
  195. }
  196.  
  197. static inline __ATTRS_o_ai __vector unsigned long long
  198. vec_insert(unsigned long long __scalar, __vector unsigned long long __vec,
  199.            int __index) {
  200.   __vec[__index & 1] = __scalar;
  201.   return __vec;
  202. }
  203.  
  204. #if __ARCH__ >= 12
  205. static inline __ATTRS_o_ai __vector float
  206. vec_insert(float __scalar, __vector float __vec, int __index) {
  207.   __vec[__index & 1] = __scalar;
  208.   return __vec;
  209. }
  210. #endif
  211.  
  212. static inline __ATTRS_o_ai __vector double
  213. vec_insert(double __scalar, __vector double __vec, int __index) {
  214.   __vec[__index & 1] = __scalar;
  215.   return __vec;
  216. }
  217.  
  218. /*-- vec_promote ------------------------------------------------------------*/
  219.  
  220. static inline __ATTRS_o_ai __vector signed char
  221. vec_promote(signed char __scalar, int __index) {
  222.   const __vector signed char __zero = (__vector signed char)0;
  223.   __vector signed char __vec = __builtin_shufflevector(__zero, __zero,
  224.     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
  225.   __vec[__index & 15] = __scalar;
  226.   return __vec;
  227. }
  228.  
  229. static inline __ATTRS_o_ai __vector unsigned char
  230. vec_promote(unsigned char __scalar, int __index) {
  231.   const __vector unsigned char __zero = (__vector unsigned char)0;
  232.   __vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,
  233.     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
  234.   __vec[__index & 15] = __scalar;
  235.   return __vec;
  236. }
  237.  
  238. static inline __ATTRS_o_ai __vector signed short
  239. vec_promote(signed short __scalar, int __index) {
  240.   const __vector signed short __zero = (__vector signed short)0;
  241.   __vector signed short __vec = __builtin_shufflevector(__zero, __zero,
  242.                                 -1, -1, -1, -1, -1, -1, -1, -1);
  243.   __vec[__index & 7] = __scalar;
  244.   return __vec;
  245. }
  246.  
  247. static inline __ATTRS_o_ai __vector unsigned short
  248. vec_promote(unsigned short __scalar, int __index) {
  249.   const __vector unsigned short __zero = (__vector unsigned short)0;
  250.   __vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,
  251.                                   -1, -1, -1, -1, -1, -1, -1, -1);
  252.   __vec[__index & 7] = __scalar;
  253.   return __vec;
  254. }
  255.  
  256. static inline __ATTRS_o_ai __vector signed int
  257. vec_promote(signed int __scalar, int __index) {
  258.   const __vector signed int __zero = (__vector signed int)0;
  259.   __vector signed int __vec = __builtin_shufflevector(__zero, __zero,
  260.                                                       -1, -1, -1, -1);
  261.   __vec[__index & 3] = __scalar;
  262.   return __vec;
  263. }
  264.  
  265. static inline __ATTRS_o_ai __vector unsigned int
  266. vec_promote(unsigned int __scalar, int __index) {
  267.   const __vector unsigned int __zero = (__vector unsigned int)0;
  268.   __vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,
  269.                                                         -1, -1, -1, -1);
  270.   __vec[__index & 3] = __scalar;
  271.   return __vec;
  272. }
  273.  
  274. static inline __ATTRS_o_ai __vector signed long long
  275. vec_promote(signed long long __scalar, int __index) {
  276.   const __vector signed long long __zero = (__vector signed long long)0;
  277.   __vector signed long long __vec = __builtin_shufflevector(__zero, __zero,
  278.                                                             -1, -1);
  279.   __vec[__index & 1] = __scalar;
  280.   return __vec;
  281. }
  282.  
  283. static inline __ATTRS_o_ai __vector unsigned long long
  284. vec_promote(unsigned long long __scalar, int __index) {
  285.   const __vector unsigned long long __zero = (__vector unsigned long long)0;
  286.   __vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,
  287.                                                               -1, -1);
  288.   __vec[__index & 1] = __scalar;
  289.   return __vec;
  290. }
  291.  
  292. #if __ARCH__ >= 12
  293. static inline __ATTRS_o_ai __vector float
  294. vec_promote(float __scalar, int __index) {
  295.   const __vector float __zero = (__vector float)0.0f;
  296.   __vector float __vec = __builtin_shufflevector(__zero, __zero,
  297.                                                  -1, -1, -1, -1);
  298.   __vec[__index & 3] = __scalar;
  299.   return __vec;
  300. }
  301. #endif
  302.  
  303. static inline __ATTRS_o_ai __vector double
  304. vec_promote(double __scalar, int __index) {
  305.   const __vector double __zero = (__vector double)0.0;
  306.   __vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);
  307.   __vec[__index & 1] = __scalar;
  308.   return __vec;
  309. }
  310.  
  311. /*-- vec_insert_and_zero ----------------------------------------------------*/
  312.  
  313. static inline __ATTRS_o_ai __vector signed char
  314. vec_insert_and_zero(const signed char *__ptr) {
  315.   __vector signed char __vec = (__vector signed char)0;
  316.   __vec[7] = *__ptr;
  317.   return __vec;
  318. }
  319.  
  320. static inline __ATTRS_o_ai __vector unsigned char
  321. vec_insert_and_zero(const unsigned char *__ptr) {
  322.   __vector unsigned char __vec = (__vector unsigned char)0;
  323.   __vec[7] = *__ptr;
  324.   return __vec;
  325. }
  326.  
  327. static inline __ATTRS_o_ai __vector signed short
  328. vec_insert_and_zero(const signed short *__ptr) {
  329.   __vector signed short __vec = (__vector signed short)0;
  330.   __vec[3] = *__ptr;
  331.   return __vec;
  332. }
  333.  
  334. static inline __ATTRS_o_ai __vector unsigned short
  335. vec_insert_and_zero(const unsigned short *__ptr) {
  336.   __vector unsigned short __vec = (__vector unsigned short)0;
  337.   __vec[3] = *__ptr;
  338.   return __vec;
  339. }
  340.  
  341. static inline __ATTRS_o_ai __vector signed int
  342. vec_insert_and_zero(const signed int *__ptr) {
  343.   __vector signed int __vec = (__vector signed int)0;
  344.   __vec[1] = *__ptr;
  345.   return __vec;
  346. }
  347.  
  348. static inline __ATTRS_o_ai __vector unsigned int
  349. vec_insert_and_zero(const unsigned int *__ptr) {
  350.   __vector unsigned int __vec = (__vector unsigned int)0;
  351.   __vec[1] = *__ptr;
  352.   return __vec;
  353. }
  354.  
  355. static inline __ATTRS_o_ai __vector signed long long
  356. vec_insert_and_zero(const signed long long *__ptr) {
  357.   __vector signed long long __vec = (__vector signed long long)0;
  358.   __vec[0] = *__ptr;
  359.   return __vec;
  360. }
  361.  
  362. static inline __ATTRS_o_ai __vector unsigned long long
  363. vec_insert_and_zero(const unsigned long long *__ptr) {
  364.   __vector unsigned long long __vec = (__vector unsigned long long)0;
  365.   __vec[0] = *__ptr;
  366.   return __vec;
  367. }
  368.  
  369. #if __ARCH__ >= 12
  370. static inline __ATTRS_o_ai __vector float
  371. vec_insert_and_zero(const float *__ptr) {
  372.   __vector float __vec = (__vector float)0.0f;
  373.   __vec[1] = *__ptr;
  374.   return __vec;
  375. }
  376. #endif
  377.  
  378. static inline __ATTRS_o_ai __vector double
  379. vec_insert_and_zero(const double *__ptr) {
  380.   __vector double __vec = (__vector double)0.0;
  381.   __vec[0] = *__ptr;
  382.   return __vec;
  383. }
  384.  
  385. /*-- vec_perm ---------------------------------------------------------------*/
  386.  
  387. static inline __ATTRS_o_ai __vector signed char
  388. vec_perm(__vector signed char __a, __vector signed char __b,
  389.          __vector unsigned char __c) {
  390.   return (__vector signed char)__builtin_s390_vperm(
  391.            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
  392. }
  393.  
  394. static inline __ATTRS_o_ai __vector unsigned char
  395. vec_perm(__vector unsigned char __a, __vector unsigned char __b,
  396.          __vector unsigned char __c) {
  397.   return (__vector unsigned char)__builtin_s390_vperm(
  398.            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
  399. }
  400.  
  401. static inline __ATTRS_o_ai __vector __bool char
  402. vec_perm(__vector __bool char __a, __vector __bool char __b,
  403.          __vector unsigned char __c) {
  404.   return (__vector __bool char)__builtin_s390_vperm(
  405.            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
  406. }
  407.  
  408. static inline __ATTRS_o_ai __vector signed short
  409. vec_perm(__vector signed short __a, __vector signed short __b,
  410.          __vector unsigned char __c) {
  411.   return (__vector signed short)__builtin_s390_vperm(
  412.            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
  413. }
  414.  
  415. static inline __ATTRS_o_ai __vector unsigned short
  416. vec_perm(__vector unsigned short __a, __vector unsigned short __b,
  417.          __vector unsigned char __c) {
  418.   return (__vector unsigned short)__builtin_s390_vperm(
  419.            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
  420. }
  421.  
  422. static inline __ATTRS_o_ai __vector __bool short
  423. vec_perm(__vector __bool short __a, __vector __bool short __b,
  424.          __vector unsigned char __c) {
  425.   return (__vector __bool short)__builtin_s390_vperm(
  426.            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
  427. }
  428.  
  429. static inline __ATTRS_o_ai __vector signed int
  430. vec_perm(__vector signed int __a, __vector signed int __b,
  431.          __vector unsigned char __c) {
  432.   return (__vector signed int)__builtin_s390_vperm(
  433.            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
  434. }
  435.  
  436. static inline __ATTRS_o_ai __vector unsigned int
  437. vec_perm(__vector unsigned int __a, __vector unsigned int __b,
  438.          __vector unsigned char __c) {
  439.   return (__vector unsigned int)__builtin_s390_vperm(
  440.            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
  441. }
  442.  
  443. static inline __ATTRS_o_ai __vector __bool int
  444. vec_perm(__vector __bool int __a, __vector __bool int __b,
  445.          __vector unsigned char __c) {
  446.   return (__vector __bool int)__builtin_s390_vperm(
  447.            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
  448. }
  449.  
  450. static inline __ATTRS_o_ai __vector signed long long
  451. vec_perm(__vector signed long long __a, __vector signed long long __b,
  452.          __vector unsigned char __c) {
  453.   return (__vector signed long long)__builtin_s390_vperm(
  454.            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
  455. }
  456.  
  457. static inline __ATTRS_o_ai __vector unsigned long long
  458. vec_perm(__vector unsigned long long __a, __vector unsigned long long __b,
  459.          __vector unsigned char __c) {
  460.   return (__vector unsigned long long)__builtin_s390_vperm(
  461.            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
  462. }
  463.  
  464. static inline __ATTRS_o_ai __vector __bool long long
  465. vec_perm(__vector __bool long long __a, __vector __bool long long __b,
  466.          __vector unsigned char __c) {
  467.   return (__vector __bool long long)__builtin_s390_vperm(
  468.            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
  469. }
  470.  
  471. #if __ARCH__ >= 12
  472. static inline __ATTRS_o_ai __vector float
  473. vec_perm(__vector float __a, __vector float __b,
  474.          __vector unsigned char __c) {
  475.   return (__vector float)__builtin_s390_vperm(
  476.            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
  477. }
  478. #endif
  479.  
  480. static inline __ATTRS_o_ai __vector double
  481. vec_perm(__vector double __a, __vector double __b,
  482.          __vector unsigned char __c) {
  483.   return (__vector double)__builtin_s390_vperm(
  484.            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
  485. }
  486.  
  487. /*-- vec_permi --------------------------------------------------------------*/
  488.  
  489. // This prototype is deprecated.
  490. extern __ATTRS_o __vector signed long long
  491. vec_permi(__vector signed long long __a, __vector signed long long __b,
  492.           int __c)
  493.   __constant_range(__c, 0, 3);
  494.  
  495. // This prototype is deprecated.
  496. extern __ATTRS_o __vector unsigned long long
  497. vec_permi(__vector unsigned long long __a, __vector unsigned long long __b,
  498.           int __c)
  499.   __constant_range(__c, 0, 3);
  500.  
  501. // This prototype is deprecated.
  502. extern __ATTRS_o __vector __bool long long
  503. vec_permi(__vector __bool long long __a, __vector __bool long long __b,
  504.           int __c)
  505.   __constant_range(__c, 0, 3);
  506.  
  507. // This prototype is deprecated.
  508. extern __ATTRS_o __vector double
  509. vec_permi(__vector double __a, __vector double __b, int __c)
  510.   __constant_range(__c, 0, 3);
  511.  
  512. #define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
  513.   __builtin_s390_vpdi((__vector unsigned long long)(X), \
  514.                       (__vector unsigned long long)(Y), \
  515.                       (((Z) & 2) << 1) | ((Z) & 1)))
  516.  
  517. /*-- vec_bperm_u128 ---------------------------------------------------------*/
  518.  
  519. #if __ARCH__ >= 12
  520. static inline __ATTRS_ai __vector unsigned long long
  521. vec_bperm_u128(__vector unsigned char __a, __vector unsigned char __b) {
  522.   return __builtin_s390_vbperm(__a, __b);
  523. }
  524. #endif
  525.  
  526. /*-- vec_revb ---------------------------------------------------------------*/
  527.  
  528. static inline __ATTRS_o_ai __vector signed short
  529. vec_revb(__vector signed short __vec) {
  530.   return (__vector signed short)
  531.          __builtin_s390_vlbrh((__vector unsigned short)__vec);
  532. }
  533.  
  534. static inline __ATTRS_o_ai __vector unsigned short
  535. vec_revb(__vector unsigned short __vec) {
  536.   return __builtin_s390_vlbrh(__vec);
  537. }
  538.  
  539. static inline __ATTRS_o_ai __vector signed int
  540. vec_revb(__vector signed int __vec) {
  541.   return (__vector signed int)
  542.          __builtin_s390_vlbrf((__vector unsigned int)__vec);
  543. }
  544.  
  545. static inline __ATTRS_o_ai __vector unsigned int
  546. vec_revb(__vector unsigned int __vec) {
  547.   return __builtin_s390_vlbrf(__vec);
  548. }
  549.  
  550. static inline __ATTRS_o_ai __vector signed long long
  551. vec_revb(__vector signed long long __vec) {
  552.   return (__vector signed long long)
  553.          __builtin_s390_vlbrg((__vector unsigned long long)__vec);
  554. }
  555.  
  556. static inline __ATTRS_o_ai __vector unsigned long long
  557. vec_revb(__vector unsigned long long __vec) {
  558.   return __builtin_s390_vlbrg(__vec);
  559. }
  560.  
  561. #if __ARCH__ >= 12
  562. static inline __ATTRS_o_ai __vector float
  563. vec_revb(__vector float __vec) {
  564.   return (__vector float)
  565.          __builtin_s390_vlbrf((__vector unsigned int)__vec);
  566. }
  567. #endif
  568.  
  569. static inline __ATTRS_o_ai __vector double
  570. vec_revb(__vector double __vec) {
  571.   return (__vector double)
  572.          __builtin_s390_vlbrg((__vector unsigned long long)__vec);
  573. }
  574.  
  575. /*-- vec_reve ---------------------------------------------------------------*/
  576.  
  577. static inline __ATTRS_o_ai __vector signed char
  578. vec_reve(__vector signed char __vec) {
  579.   return (__vector signed char) { __vec[15], __vec[14], __vec[13], __vec[12],
  580.                                   __vec[11], __vec[10], __vec[9], __vec[8],
  581.                                   __vec[7], __vec[6], __vec[5], __vec[4],
  582.                                   __vec[3], __vec[2], __vec[1], __vec[0] };
  583. }
  584.  
  585. static inline __ATTRS_o_ai __vector unsigned char
  586. vec_reve(__vector unsigned char __vec) {
  587.   return (__vector unsigned char) { __vec[15], __vec[14], __vec[13], __vec[12],
  588.                                     __vec[11], __vec[10], __vec[9], __vec[8],
  589.                                     __vec[7], __vec[6], __vec[5], __vec[4],
  590.                                     __vec[3], __vec[2], __vec[1], __vec[0] };
  591. }
  592.  
  593. static inline __ATTRS_o_ai __vector __bool char
  594. vec_reve(__vector __bool char __vec) {
  595.   return (__vector __bool char) { __vec[15], __vec[14], __vec[13], __vec[12],
  596.                                   __vec[11], __vec[10], __vec[9], __vec[8],
  597.                                   __vec[7], __vec[6], __vec[5], __vec[4],
  598.                                   __vec[3], __vec[2], __vec[1], __vec[0] };
  599. }
  600.  
  601. static inline __ATTRS_o_ai __vector signed short
  602. vec_reve(__vector signed short __vec) {
  603.   return (__vector signed short) { __vec[7], __vec[6], __vec[5], __vec[4],
  604.                                    __vec[3], __vec[2], __vec[1], __vec[0] };
  605. }
  606.  
  607. static inline __ATTRS_o_ai __vector unsigned short
  608. vec_reve(__vector unsigned short __vec) {
  609.   return (__vector unsigned short) { __vec[7], __vec[6], __vec[5], __vec[4],
  610.                                      __vec[3], __vec[2], __vec[1], __vec[0] };
  611. }
  612.  
  613. static inline __ATTRS_o_ai __vector __bool short
  614. vec_reve(__vector __bool short __vec) {
  615.   return (__vector __bool short) { __vec[7], __vec[6], __vec[5], __vec[4],
  616.                                    __vec[3], __vec[2], __vec[1], __vec[0] };
  617. }
  618.  
  619. static inline __ATTRS_o_ai __vector signed int
  620. vec_reve(__vector signed int __vec) {
  621.   return (__vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] };
  622. }
  623.  
  624. static inline __ATTRS_o_ai __vector unsigned int
  625. vec_reve(__vector unsigned int __vec) {
  626.   return (__vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] };
  627. }
  628.  
  629. static inline __ATTRS_o_ai __vector __bool int
  630. vec_reve(__vector __bool int __vec) {
  631.   return (__vector __bool int) { __vec[3], __vec[2], __vec[1], __vec[0] };
  632. }
  633.  
  634. static inline __ATTRS_o_ai __vector signed long long
  635. vec_reve(__vector signed long long __vec) {
  636.   return (__vector signed long long) { __vec[1], __vec[0] };
  637. }
  638.  
  639. static inline __ATTRS_o_ai __vector unsigned long long
  640. vec_reve(__vector unsigned long long __vec) {
  641.   return (__vector unsigned long long) { __vec[1], __vec[0] };
  642. }
  643.  
  644. static inline __ATTRS_o_ai __vector __bool long long
  645. vec_reve(__vector __bool long long __vec) {
  646.   return (__vector __bool long long) { __vec[1], __vec[0] };
  647. }
  648.  
  649. #if __ARCH__ >= 12
  650. static inline __ATTRS_o_ai __vector float
  651. vec_reve(__vector float __vec) {
  652.   return (__vector float) { __vec[3], __vec[2], __vec[1], __vec[0] };
  653. }
  654. #endif
  655.  
  656. static inline __ATTRS_o_ai __vector double
  657. vec_reve(__vector double __vec) {
  658.   return (__vector double) { __vec[1], __vec[0] };
  659. }
  660.  
  661. /*-- vec_sel ----------------------------------------------------------------*/
  662.  
  663. static inline __ATTRS_o_ai __vector signed char
  664. vec_sel(__vector signed char __a, __vector signed char __b,
  665.         __vector unsigned char __c) {
  666.   return (((__vector signed char)__c & __b) |
  667.           (~(__vector signed char)__c & __a));
  668. }
  669.  
  670. static inline __ATTRS_o_ai __vector signed char
  671. vec_sel(__vector signed char __a, __vector signed char __b,
  672.         __vector __bool char __c) {
  673.   return (((__vector signed char)__c & __b) |
  674.           (~(__vector signed char)__c & __a));
  675. }
  676.  
  677. static inline __ATTRS_o_ai __vector __bool char
  678. vec_sel(__vector __bool char __a, __vector __bool char __b,
  679.         __vector unsigned char __c) {
  680.   return (((__vector __bool char)__c & __b) |
  681.           (~(__vector __bool char)__c & __a));
  682. }
  683.  
  684. static inline __ATTRS_o_ai __vector __bool char
  685. vec_sel(__vector __bool char __a, __vector __bool char __b,
  686.         __vector __bool char __c) {
  687.   return (__c & __b) | (~__c & __a);
  688. }
  689.  
  690. static inline __ATTRS_o_ai __vector unsigned char
  691. vec_sel(__vector unsigned char __a, __vector unsigned char __b,
  692.         __vector unsigned char __c) {
  693.   return (__c & __b) | (~__c & __a);
  694. }
  695.  
  696. static inline __ATTRS_o_ai __vector unsigned char
  697. vec_sel(__vector unsigned char __a, __vector unsigned char __b,
  698.         __vector __bool char __c) {
  699.   return (((__vector unsigned char)__c & __b) |
  700.           (~(__vector unsigned char)__c & __a));
  701. }
  702.  
  703. static inline __ATTRS_o_ai __vector signed short
  704. vec_sel(__vector signed short __a, __vector signed short __b,
  705.         __vector unsigned short __c) {
  706.   return (((__vector signed short)__c & __b) |
  707.           (~(__vector signed short)__c & __a));
  708. }
  709.  
  710. static inline __ATTRS_o_ai __vector signed short
  711. vec_sel(__vector signed short __a, __vector signed short __b,
  712.         __vector __bool short __c) {
  713.   return (((__vector signed short)__c & __b) |
  714.           (~(__vector signed short)__c & __a));
  715. }
  716.  
  717. static inline __ATTRS_o_ai __vector __bool short
  718. vec_sel(__vector __bool short __a, __vector __bool short __b,
  719.         __vector unsigned short __c) {
  720.   return (((__vector __bool short)__c & __b) |
  721.           (~(__vector __bool short)__c & __a));
  722. }
  723.  
  724. static inline __ATTRS_o_ai __vector __bool short
  725. vec_sel(__vector __bool short __a, __vector __bool short __b,
  726.         __vector __bool short __c) {
  727.   return (__c & __b) | (~__c & __a);
  728. }
  729.  
  730. static inline __ATTRS_o_ai __vector unsigned short
  731. vec_sel(__vector unsigned short __a, __vector unsigned short __b,
  732.         __vector unsigned short __c) {
  733.   return (__c & __b) | (~__c & __a);
  734. }
  735.  
  736. static inline __ATTRS_o_ai __vector unsigned short
  737. vec_sel(__vector unsigned short __a, __vector unsigned short __b,
  738.         __vector __bool short __c) {
  739.   return (((__vector unsigned short)__c & __b) |
  740.           (~(__vector unsigned short)__c & __a));
  741. }
  742.  
  743. static inline __ATTRS_o_ai __vector signed int
  744. vec_sel(__vector signed int __a, __vector signed int __b,
  745.         __vector unsigned int __c) {
  746.   return (((__vector signed int)__c & __b) |
  747.           (~(__vector signed int)__c & __a));
  748. }
  749.  
  750. static inline __ATTRS_o_ai __vector signed int
  751. vec_sel(__vector signed int __a, __vector signed int __b,
  752.         __vector __bool int __c) {
  753.   return (((__vector signed int)__c & __b) |
  754.           (~(__vector signed int)__c & __a));
  755. }
  756.  
  757. static inline __ATTRS_o_ai __vector __bool int
  758. vec_sel(__vector __bool int __a, __vector __bool int __b,
  759.         __vector unsigned int __c) {
  760.   return (((__vector __bool int)__c & __b) |
  761.           (~(__vector __bool int)__c & __a));
  762. }
  763.  
  764. static inline __ATTRS_o_ai __vector __bool int
  765. vec_sel(__vector __bool int __a, __vector __bool int __b,
  766.         __vector __bool int __c) {
  767.   return (__c & __b) | (~__c & __a);
  768. }
  769.  
  770. static inline __ATTRS_o_ai __vector unsigned int
  771. vec_sel(__vector unsigned int __a, __vector unsigned int __b,
  772.         __vector unsigned int __c) {
  773.   return (__c & __b) | (~__c & __a);
  774. }
  775.  
  776. static inline __ATTRS_o_ai __vector unsigned int
  777. vec_sel(__vector unsigned int __a, __vector unsigned int __b,
  778.         __vector __bool int __c) {
  779.   return (((__vector unsigned int)__c & __b) |
  780.           (~(__vector unsigned int)__c & __a));
  781. }
  782.  
  783. static inline __ATTRS_o_ai __vector signed long long
  784. vec_sel(__vector signed long long __a, __vector signed long long __b,
  785.         __vector unsigned long long __c) {
  786.   return (((__vector signed long long)__c & __b) |
  787.           (~(__vector signed long long)__c & __a));
  788. }
  789.  
  790. static inline __ATTRS_o_ai __vector signed long long
  791. vec_sel(__vector signed long long __a, __vector signed long long __b,
  792.         __vector __bool long long __c) {
  793.   return (((__vector signed long long)__c & __b) |
  794.           (~(__vector signed long long)__c & __a));
  795. }
  796.  
  797. static inline __ATTRS_o_ai __vector __bool long long
  798. vec_sel(__vector __bool long long __a, __vector __bool long long __b,
  799.         __vector unsigned long long __c) {
  800.   return (((__vector __bool long long)__c & __b) |
  801.           (~(__vector __bool long long)__c & __a));
  802. }
  803.  
  804. static inline __ATTRS_o_ai __vector __bool long long
  805. vec_sel(__vector __bool long long __a, __vector __bool long long __b,
  806.         __vector __bool long long __c) {
  807.   return (__c & __b) | (~__c & __a);
  808. }
  809.  
  810. static inline __ATTRS_o_ai __vector unsigned long long
  811. vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
  812.         __vector unsigned long long __c) {
  813.   return (__c & __b) | (~__c & __a);
  814. }
  815.  
  816. static inline __ATTRS_o_ai __vector unsigned long long
  817. vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
  818.         __vector __bool long long __c) {
  819.   return (((__vector unsigned long long)__c & __b) |
  820.           (~(__vector unsigned long long)__c & __a));
  821. }
  822.  
  823. #if __ARCH__ >= 12
  824. static inline __ATTRS_o_ai __vector float
  825. vec_sel(__vector float __a, __vector float __b, __vector unsigned int __c) {
  826.   return (__vector float)((__c & (__vector unsigned int)__b) |
  827.                           (~__c & (__vector unsigned int)__a));
  828. }
  829.  
  830. static inline __ATTRS_o_ai __vector float
  831. vec_sel(__vector float __a, __vector float __b, __vector __bool int __c) {
  832.   __vector unsigned int __ac = (__vector unsigned int)__a;
  833.   __vector unsigned int __bc = (__vector unsigned int)__b;
  834.   __vector unsigned int __cc = (__vector unsigned int)__c;
  835.   return (__vector float)((__cc & __bc) | (~__cc & __ac));
  836. }
  837. #endif
  838.  
  839. static inline __ATTRS_o_ai __vector double
  840. vec_sel(__vector double __a, __vector double __b,
  841.         __vector unsigned long long __c) {
  842.   return (__vector double)((__c & (__vector unsigned long long)__b) |
  843.                          (~__c & (__vector unsigned long long)__a));
  844. }
  845.  
  846. static inline __ATTRS_o_ai __vector double
  847. vec_sel(__vector double __a, __vector double __b,
  848.         __vector __bool long long __c) {
  849.   __vector unsigned long long __ac = (__vector unsigned long long)__a;
  850.   __vector unsigned long long __bc = (__vector unsigned long long)__b;
  851.   __vector unsigned long long __cc = (__vector unsigned long long)__c;
  852.   return (__vector double)((__cc & __bc) | (~__cc & __ac));
  853. }
  854.  
  855. /*-- vec_gather_element -----------------------------------------------------*/
  856.  
  857. static inline __ATTRS_o_ai __vector signed int
  858. vec_gather_element(__vector signed int __vec,
  859.                    __vector unsigned int __offset,
  860.                    const signed int *__ptr, int __index)
  861.   __constant_range(__index, 0, 3) {
  862.   __vec[__index] = *(const signed int *)(
  863.     (const char *)__ptr + __offset[__index]);
  864.   return __vec;
  865. }
  866.  
  867. static inline __ATTRS_o_ai __vector __bool int
  868. vec_gather_element(__vector __bool int __vec,
  869.                    __vector unsigned int __offset,
  870.                    const unsigned int *__ptr, int __index)
  871.   __constant_range(__index, 0, 3) {
  872.   __vec[__index] = *(const unsigned int *)(
  873.     (const char *)__ptr + __offset[__index]);
  874.   return __vec;
  875. }
  876.  
  877. static inline __ATTRS_o_ai __vector unsigned int
  878. vec_gather_element(__vector unsigned int __vec,
  879.                    __vector unsigned int __offset,
  880.                    const unsigned int *__ptr, int __index)
  881.   __constant_range(__index, 0, 3) {
  882.   __vec[__index] = *(const unsigned int *)(
  883.     (const char *)__ptr + __offset[__index]);
  884.   return __vec;
  885. }
  886.  
  887. static inline __ATTRS_o_ai __vector signed long long
  888. vec_gather_element(__vector signed long long __vec,
  889.                    __vector unsigned long long __offset,
  890.                    const signed long long *__ptr, int __index)
  891.   __constant_range(__index, 0, 1) {
  892.   __vec[__index] = *(const signed long long *)(
  893.     (const char *)__ptr + __offset[__index]);
  894.   return __vec;
  895. }
  896.  
  897. static inline __ATTRS_o_ai __vector __bool long long
  898. vec_gather_element(__vector __bool long long __vec,
  899.                    __vector unsigned long long __offset,
  900.                    const unsigned long long *__ptr, int __index)
  901.   __constant_range(__index, 0, 1) {
  902.   __vec[__index] = *(const unsigned long long *)(
  903.     (const char *)__ptr + __offset[__index]);
  904.   return __vec;
  905. }
  906.  
  907. static inline __ATTRS_o_ai __vector unsigned long long
  908. vec_gather_element(__vector unsigned long long __vec,
  909.                    __vector unsigned long long __offset,
  910.                    const unsigned long long *__ptr, int __index)
  911.   __constant_range(__index, 0, 1) {
  912.   __vec[__index] = *(const unsigned long long *)(
  913.     (const char *)__ptr + __offset[__index]);
  914.   return __vec;
  915. }
  916.  
  917. #if __ARCH__ >= 12
  918. static inline __ATTRS_o_ai __vector float
  919. vec_gather_element(__vector float __vec,
  920.                    __vector unsigned int __offset,
  921.                    const float *__ptr, int __index)
  922.   __constant_range(__index, 0, 3) {
  923.   __vec[__index] = *(const float *)(
  924.     (const char *)__ptr + __offset[__index]);
  925.   return __vec;
  926. }
  927. #endif
  928.  
  929. static inline __ATTRS_o_ai __vector double
  930. vec_gather_element(__vector double __vec,
  931.                    __vector unsigned long long __offset,
  932.                    const double *__ptr, int __index)
  933.   __constant_range(__index, 0, 1) {
  934.   __vec[__index] = *(const double *)(
  935.     (const char *)__ptr + __offset[__index]);
  936.   return __vec;
  937. }
  938.  
  939. /*-- vec_scatter_element ----------------------------------------------------*/
  940.  
  941. static inline __ATTRS_o_ai void
  942. vec_scatter_element(__vector signed int __vec,
  943.                     __vector unsigned int __offset,
  944.                     signed int *__ptr, int __index)
  945.   __constant_range(__index, 0, 3) {
  946.   *(signed int *)((char *)__ptr + __offset[__index]) =
  947.     __vec[__index];
  948. }
  949.  
  950. static inline __ATTRS_o_ai void
  951. vec_scatter_element(__vector __bool int __vec,
  952.                     __vector unsigned int __offset,
  953.                     unsigned int *__ptr, int __index)
  954.   __constant_range(__index, 0, 3) {
  955.   *(unsigned int *)((char *)__ptr + __offset[__index]) =
  956.     __vec[__index];
  957. }
  958.  
  959. static inline __ATTRS_o_ai void
  960. vec_scatter_element(__vector unsigned int __vec,
  961.                     __vector unsigned int __offset,
  962.                     unsigned int *__ptr, int __index)
  963.   __constant_range(__index, 0, 3) {
  964.   *(unsigned int *)((char *)__ptr + __offset[__index]) =
  965.     __vec[__index];
  966. }
  967.  
  968. static inline __ATTRS_o_ai void
  969. vec_scatter_element(__vector signed long long __vec,
  970.                     __vector unsigned long long __offset,
  971.                     signed long long *__ptr, int __index)
  972.   __constant_range(__index, 0, 1) {
  973.   *(signed long long *)((char *)__ptr + __offset[__index]) =
  974.     __vec[__index];
  975. }
  976.  
  977. static inline __ATTRS_o_ai void
  978. vec_scatter_element(__vector __bool long long __vec,
  979.                     __vector unsigned long long __offset,
  980.                     unsigned long long *__ptr, int __index)
  981.   __constant_range(__index, 0, 1) {
  982.   *(unsigned long long *)((char *)__ptr + __offset[__index]) =
  983.     __vec[__index];
  984. }
  985.  
  986. static inline __ATTRS_o_ai void
  987. vec_scatter_element(__vector unsigned long long __vec,
  988.                     __vector unsigned long long __offset,
  989.                     unsigned long long *__ptr, int __index)
  990.   __constant_range(__index, 0, 1) {
  991.   *(unsigned long long *)((char *)__ptr + __offset[__index]) =
  992.     __vec[__index];
  993. }
  994.  
  995. #if __ARCH__ >= 12
  996. static inline __ATTRS_o_ai void
  997. vec_scatter_element(__vector float __vec,
  998.                     __vector unsigned int __offset,
  999.                     float *__ptr, int __index)
  1000.   __constant_range(__index, 0, 3) {
  1001.   *(float *)((char *)__ptr + __offset[__index]) =
  1002.     __vec[__index];
  1003. }
  1004. #endif
  1005.  
  1006. static inline __ATTRS_o_ai void
  1007. vec_scatter_element(__vector double __vec,
  1008.                     __vector unsigned long long __offset,
  1009.                     double *__ptr, int __index)
  1010.   __constant_range(__index, 0, 1) {
  1011.   *(double *)((char *)__ptr + __offset[__index]) =
  1012.     __vec[__index];
  1013. }
  1014.  
  1015. /*-- vec_xl -----------------------------------------------------------------*/
  1016.  
  1017. static inline __ATTRS_o_ai __vector signed char
  1018. vec_xl(long __offset, const signed char *__ptr) {
  1019.   __vector signed char V;
  1020.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1021.                    sizeof(__vector signed char));
  1022.   return V;
  1023. }
  1024.  
  1025. static inline __ATTRS_o_ai __vector unsigned char
  1026. vec_xl(long __offset, const unsigned char *__ptr) {
  1027.   __vector unsigned char V;
  1028.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1029.                    sizeof(__vector unsigned char));
  1030.   return V;
  1031. }
  1032.  
  1033. static inline __ATTRS_o_ai __vector signed short
  1034. vec_xl(long __offset, const signed short *__ptr) {
  1035.   __vector signed short V;
  1036.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1037.                    sizeof(__vector signed short));
  1038.   return V;
  1039. }
  1040.  
  1041. static inline __ATTRS_o_ai __vector unsigned short
  1042. vec_xl(long __offset, const unsigned short *__ptr) {
  1043.   __vector unsigned short V;
  1044.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1045.                    sizeof(__vector unsigned short));
  1046.   return V;
  1047. }
  1048.  
  1049. static inline __ATTRS_o_ai __vector signed int
  1050. vec_xl(long __offset, const signed int *__ptr) {
  1051.   __vector signed int V;
  1052.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1053.                    sizeof(__vector signed int));
  1054.   return V;
  1055. }
  1056.  
  1057. static inline __ATTRS_o_ai __vector unsigned int
  1058. vec_xl(long __offset, const unsigned int *__ptr) {
  1059.   __vector unsigned int V;
  1060.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1061.                    sizeof(__vector unsigned int));
  1062.   return V;
  1063. }
  1064.  
  1065. static inline __ATTRS_o_ai __vector signed long long
  1066. vec_xl(long __offset, const signed long long *__ptr) {
  1067.   __vector signed long long V;
  1068.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1069.                    sizeof(__vector signed long long));
  1070.   return V;
  1071. }
  1072.  
  1073. static inline __ATTRS_o_ai __vector unsigned long long
  1074. vec_xl(long __offset, const unsigned long long *__ptr) {
  1075.   __vector unsigned long long V;
  1076.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1077.                    sizeof(__vector unsigned long long));
  1078.   return V;
  1079. }
  1080.  
  1081. #if __ARCH__ >= 12
  1082. static inline __ATTRS_o_ai __vector float
  1083. vec_xl(long __offset, const float *__ptr) {
  1084.   __vector float V;
  1085.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1086.                    sizeof(__vector float));
  1087.   return V;
  1088. }
  1089. #endif
  1090.  
  1091. static inline __ATTRS_o_ai __vector double
  1092. vec_xl(long __offset, const double *__ptr) {
  1093.   __vector double V;
  1094.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1095.                    sizeof(__vector double));
  1096.   return V;
  1097. }
  1098.  
  1099. /*-- vec_xld2 ---------------------------------------------------------------*/
  1100.  
  1101. // This prototype is deprecated.
  1102. static inline __ATTRS_o_ai __vector signed char
  1103. vec_xld2(long __offset, const signed char *__ptr) {
  1104.   __vector signed char V;
  1105.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1106.                    sizeof(__vector signed char));
  1107.   return V;
  1108. }
  1109.  
  1110. // This prototype is deprecated.
  1111. static inline __ATTRS_o_ai __vector unsigned char
  1112. vec_xld2(long __offset, const unsigned char *__ptr) {
  1113.   __vector unsigned char V;
  1114.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1115.                    sizeof(__vector unsigned char));
  1116.   return V;
  1117. }
  1118.  
  1119. // This prototype is deprecated.
  1120. static inline __ATTRS_o_ai __vector signed short
  1121. vec_xld2(long __offset, const signed short *__ptr) {
  1122.   __vector signed short V;
  1123.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1124.                    sizeof(__vector signed short));
  1125.   return V;
  1126. }
  1127.  
  1128. // This prototype is deprecated.
  1129. static inline __ATTRS_o_ai __vector unsigned short
  1130. vec_xld2(long __offset, const unsigned short *__ptr) {
  1131.   __vector unsigned short V;
  1132.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1133.                    sizeof(__vector unsigned short));
  1134.   return V;
  1135. }
  1136.  
  1137. // This prototype is deprecated.
  1138. static inline __ATTRS_o_ai __vector signed int
  1139. vec_xld2(long __offset, const signed int *__ptr) {
  1140.   __vector signed int V;
  1141.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1142.                    sizeof(__vector signed int));
  1143.   return V;
  1144. }
  1145.  
  1146. // This prototype is deprecated.
  1147. static inline __ATTRS_o_ai __vector unsigned int
  1148. vec_xld2(long __offset, const unsigned int *__ptr) {
  1149.   __vector unsigned int V;
  1150.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1151.                    sizeof(__vector unsigned int));
  1152.   return V;
  1153. }
  1154.  
  1155. // This prototype is deprecated.
  1156. static inline __ATTRS_o_ai __vector signed long long
  1157. vec_xld2(long __offset, const signed long long *__ptr) {
  1158.   __vector signed long long V;
  1159.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1160.                    sizeof(__vector signed long long));
  1161.   return V;
  1162. }
  1163.  
  1164. // This prototype is deprecated.
  1165. static inline __ATTRS_o_ai __vector unsigned long long
  1166. vec_xld2(long __offset, const unsigned long long *__ptr) {
  1167.   __vector unsigned long long V;
  1168.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1169.                    sizeof(__vector unsigned long long));
  1170.   return V;
  1171. }
  1172.  
  1173. // This prototype is deprecated.
  1174. static inline __ATTRS_o_ai __vector double
  1175. vec_xld2(long __offset, const double *__ptr) {
  1176.   __vector double V;
  1177.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1178.                    sizeof(__vector double));
  1179.   return V;
  1180. }
  1181.  
  1182. /*-- vec_xlw4 ---------------------------------------------------------------*/
  1183.  
  1184. // This prototype is deprecated.
  1185. static inline __ATTRS_o_ai __vector signed char
  1186. vec_xlw4(long __offset, const signed char *__ptr) {
  1187.   __vector signed char V;
  1188.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1189.                    sizeof(__vector signed char));
  1190.   return V;
  1191. }
  1192.  
  1193. // This prototype is deprecated.
  1194. static inline __ATTRS_o_ai __vector unsigned char
  1195. vec_xlw4(long __offset, const unsigned char *__ptr) {
  1196.   __vector unsigned char V;
  1197.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1198.                    sizeof(__vector unsigned char));
  1199.   return V;
  1200. }
  1201.  
  1202. // This prototype is deprecated.
  1203. static inline __ATTRS_o_ai __vector signed short
  1204. vec_xlw4(long __offset, const signed short *__ptr) {
  1205.   __vector signed short V;
  1206.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1207.                    sizeof(__vector signed short));
  1208.   return V;
  1209. }
  1210.  
  1211. // This prototype is deprecated.
  1212. static inline __ATTRS_o_ai __vector unsigned short
  1213. vec_xlw4(long __offset, const unsigned short *__ptr) {
  1214.   __vector unsigned short V;
  1215.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1216.                    sizeof(__vector unsigned short));
  1217.   return V;
  1218. }
  1219.  
  1220. // This prototype is deprecated.
  1221. static inline __ATTRS_o_ai __vector signed int
  1222. vec_xlw4(long __offset, const signed int *__ptr) {
  1223.   __vector signed int V;
  1224.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1225.                    sizeof(__vector signed int));
  1226.   return V;
  1227. }
  1228.  
  1229. // This prototype is deprecated.
  1230. static inline __ATTRS_o_ai __vector unsigned int
  1231. vec_xlw4(long __offset, const unsigned int *__ptr) {
  1232.   __vector unsigned int V;
  1233.   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
  1234.                    sizeof(__vector unsigned int));
  1235.   return V;
  1236. }
  1237.  
  1238. /*-- vec_xst ----------------------------------------------------------------*/
  1239.  
  1240. static inline __ATTRS_o_ai void
  1241. vec_xst(__vector signed char __vec, long __offset, signed char *__ptr) {
  1242.   __vector signed char V = __vec;
  1243.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1244.                    sizeof(__vector signed char));
  1245. }
  1246.  
  1247. static inline __ATTRS_o_ai void
  1248. vec_xst(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
  1249.   __vector unsigned char V = __vec;
  1250.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1251.                    sizeof(__vector unsigned char));
  1252. }
  1253.  
  1254. static inline __ATTRS_o_ai void
  1255. vec_xst(__vector signed short __vec, long __offset, signed short *__ptr) {
  1256.   __vector signed short V = __vec;
  1257.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1258.                    sizeof(__vector signed short));
  1259. }
  1260.  
  1261. static inline __ATTRS_o_ai void
  1262. vec_xst(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
  1263.   __vector unsigned short V = __vec;
  1264.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1265.                    sizeof(__vector unsigned short));
  1266. }
  1267.  
  1268. static inline __ATTRS_o_ai void
  1269. vec_xst(__vector signed int __vec, long __offset, signed int *__ptr) {
  1270.   __vector signed int V = __vec;
  1271.   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
  1272. }
  1273.  
  1274. static inline __ATTRS_o_ai void
  1275. vec_xst(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
  1276.   __vector unsigned int V = __vec;
  1277.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1278.                    sizeof(__vector unsigned int));
  1279. }
  1280.  
  1281. static inline __ATTRS_o_ai void
  1282. vec_xst(__vector signed long long __vec, long __offset,
  1283.         signed long long *__ptr) {
  1284.   __vector signed long long V = __vec;
  1285.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1286.                    sizeof(__vector signed long long));
  1287. }
  1288.  
  1289. static inline __ATTRS_o_ai void
  1290. vec_xst(__vector unsigned long long __vec, long __offset,
  1291.         unsigned long long *__ptr) {
  1292.   __vector unsigned long long V = __vec;
  1293.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1294.                    sizeof(__vector unsigned long long));
  1295. }
  1296.  
  1297. #if __ARCH__ >= 12
  1298. static inline __ATTRS_o_ai void
  1299. vec_xst(__vector float __vec, long __offset, float *__ptr) {
  1300.   __vector float V = __vec;
  1301.   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector float));
  1302. }
  1303. #endif
  1304.  
  1305. static inline __ATTRS_o_ai void
  1306. vec_xst(__vector double __vec, long __offset, double *__ptr) {
  1307.   __vector double V = __vec;
  1308.   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
  1309. }
  1310.  
  1311. /*-- vec_xstd2 --------------------------------------------------------------*/
  1312.  
  1313. // This prototype is deprecated.
  1314. static inline __ATTRS_o_ai void
  1315. vec_xstd2(__vector signed char __vec, long __offset, signed char *__ptr) {
  1316.   __vector signed char V = __vec;
  1317.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1318.                    sizeof(__vector signed char));
  1319. }
  1320.  
  1321. // This prototype is deprecated.
  1322. static inline __ATTRS_o_ai void
  1323. vec_xstd2(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
  1324.   __vector unsigned char V = __vec;
  1325.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1326.                    sizeof(__vector unsigned char));
  1327. }
  1328.  
  1329. // This prototype is deprecated.
  1330. static inline __ATTRS_o_ai void
  1331. vec_xstd2(__vector signed short __vec, long __offset, signed short *__ptr) {
  1332.   __vector signed short V = __vec;
  1333.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1334.                    sizeof(__vector signed short));
  1335. }
  1336.  
  1337. // This prototype is deprecated.
  1338. static inline __ATTRS_o_ai void
  1339. vec_xstd2(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
  1340.   __vector unsigned short V = __vec;
  1341.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1342.                    sizeof(__vector unsigned short));
  1343. }
  1344.  
  1345. // This prototype is deprecated.
  1346. static inline __ATTRS_o_ai void
  1347. vec_xstd2(__vector signed int __vec, long __offset, signed int *__ptr) {
  1348.   __vector signed int V = __vec;
  1349.   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
  1350. }
  1351.  
  1352. // This prototype is deprecated.
  1353. static inline __ATTRS_o_ai void
  1354. vec_xstd2(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
  1355.   __vector unsigned int V = __vec;
  1356.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1357.                    sizeof(__vector unsigned int));
  1358. }
  1359.  
  1360. // This prototype is deprecated.
  1361. static inline __ATTRS_o_ai void
  1362. vec_xstd2(__vector signed long long __vec, long __offset,
  1363.           signed long long *__ptr) {
  1364.   __vector signed long long V = __vec;
  1365.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1366.                    sizeof(__vector signed long long));
  1367. }
  1368.  
  1369. // This prototype is deprecated.
  1370. static inline __ATTRS_o_ai void
  1371. vec_xstd2(__vector unsigned long long __vec, long __offset,
  1372.           unsigned long long *__ptr) {
  1373.   __vector unsigned long long V = __vec;
  1374.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1375.                    sizeof(__vector unsigned long long));
  1376. }
  1377.  
  1378. // This prototype is deprecated.
  1379. static inline __ATTRS_o_ai void
  1380. vec_xstd2(__vector double __vec, long __offset, double *__ptr) {
  1381.   __vector double V = __vec;
  1382.   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
  1383. }
  1384.  
  1385. /*-- vec_xstw4 --------------------------------------------------------------*/
  1386.  
  1387. // This prototype is deprecated.
  1388. static inline __ATTRS_o_ai void
  1389. vec_xstw4(__vector signed char __vec, long __offset, signed char *__ptr) {
  1390.   __vector signed char V = __vec;
  1391.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1392.                    sizeof(__vector signed char));
  1393. }
  1394.  
  1395. // This prototype is deprecated.
  1396. static inline __ATTRS_o_ai void
  1397. vec_xstw4(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
  1398.   __vector unsigned char V = __vec;
  1399.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1400.                    sizeof(__vector unsigned char));
  1401. }
  1402.  
  1403. // This prototype is deprecated.
  1404. static inline __ATTRS_o_ai void
  1405. vec_xstw4(__vector signed short __vec, long __offset, signed short *__ptr) {
  1406.   __vector signed short V = __vec;
  1407.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1408.                    sizeof(__vector signed short));
  1409. }
  1410.  
  1411. // This prototype is deprecated.
  1412. static inline __ATTRS_o_ai void
  1413. vec_xstw4(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
  1414.   __vector unsigned short V = __vec;
  1415.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1416.                    sizeof(__vector unsigned short));
  1417. }
  1418.  
  1419. // This prototype is deprecated.
  1420. static inline __ATTRS_o_ai void
  1421. vec_xstw4(__vector signed int __vec, long __offset, signed int *__ptr) {
  1422.   __vector signed int V = __vec;
  1423.   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
  1424. }
  1425.  
  1426. // This prototype is deprecated.
  1427. static inline __ATTRS_o_ai void
  1428. vec_xstw4(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
  1429.   __vector unsigned int V = __vec;
  1430.   __builtin_memcpy(((char *)__ptr + __offset), &V,
  1431.                    sizeof(__vector unsigned int));
  1432. }
  1433.  
  1434. /*-- vec_load_bndry ---------------------------------------------------------*/
  1435.  
  1436. extern __ATTRS_o __vector signed char
  1437. vec_load_bndry(const signed char *__ptr, unsigned short __len)
  1438.   __constant_pow2_range(__len, 64, 4096);
  1439.  
  1440. extern __ATTRS_o __vector unsigned char
  1441. vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
  1442.   __constant_pow2_range(__len, 64, 4096);
  1443.  
  1444. extern __ATTRS_o __vector signed short
  1445. vec_load_bndry(const signed short *__ptr, unsigned short __len)
  1446.   __constant_pow2_range(__len, 64, 4096);
  1447.  
  1448. extern __ATTRS_o __vector unsigned short
  1449. vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
  1450.   __constant_pow2_range(__len, 64, 4096);
  1451.  
  1452. extern __ATTRS_o __vector signed int
  1453. vec_load_bndry(const signed int *__ptr, unsigned short __len)
  1454.   __constant_pow2_range(__len, 64, 4096);
  1455.  
  1456. extern __ATTRS_o __vector unsigned int
  1457. vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
  1458.   __constant_pow2_range(__len, 64, 4096);
  1459.  
  1460. extern __ATTRS_o __vector signed long long
  1461. vec_load_bndry(const signed long long *__ptr, unsigned short __len)
  1462.   __constant_pow2_range(__len, 64, 4096);
  1463.  
  1464. extern __ATTRS_o __vector unsigned long long
  1465. vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
  1466.   __constant_pow2_range(__len, 64, 4096);
  1467.  
  1468. #if __ARCH__ >= 12
  1469. extern __ATTRS_o __vector float
  1470. vec_load_bndry(const float *__ptr, unsigned short __len)
  1471.   __constant_pow2_range(__len, 64, 4096);
  1472. #endif
  1473.  
  1474. extern __ATTRS_o __vector double
  1475. vec_load_bndry(const double *__ptr, unsigned short __len)
  1476.   __constant_pow2_range(__len, 64, 4096);
  1477.  
  1478. #define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
  1479.   __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
  1480.                             (Y) == 128 ? 1 : \
  1481.                             (Y) == 256 ? 2 : \
  1482.                             (Y) == 512 ? 3 : \
  1483.                             (Y) == 1024 ? 4 : \
  1484.                             (Y) == 2048 ? 5 : \
  1485.                             (Y) == 4096 ? 6 : -1)))
  1486.  
  1487. /*-- vec_load_len -----------------------------------------------------------*/
  1488.  
  1489. static inline __ATTRS_o_ai __vector signed char
  1490. vec_load_len(const signed char *__ptr, unsigned int __len) {
  1491.   return (__vector signed char)__builtin_s390_vll(__len, __ptr);
  1492. }
  1493.  
  1494. static inline __ATTRS_o_ai __vector unsigned char
  1495. vec_load_len(const unsigned char *__ptr, unsigned int __len) {
  1496.   return (__vector unsigned char)__builtin_s390_vll(__len, __ptr);
  1497. }
  1498.  
  1499. static inline __ATTRS_o_ai __vector signed short
  1500. vec_load_len(const signed short *__ptr, unsigned int __len) {
  1501.   return (__vector signed short)__builtin_s390_vll(__len, __ptr);
  1502. }
  1503.  
  1504. static inline __ATTRS_o_ai __vector unsigned short
  1505. vec_load_len(const unsigned short *__ptr, unsigned int __len) {
  1506.   return (__vector unsigned short)__builtin_s390_vll(__len, __ptr);
  1507. }
  1508.  
  1509. static inline __ATTRS_o_ai __vector signed int
  1510. vec_load_len(const signed int *__ptr, unsigned int __len) {
  1511.   return (__vector signed int)__builtin_s390_vll(__len, __ptr);
  1512. }
  1513.  
  1514. static inline __ATTRS_o_ai __vector unsigned int
  1515. vec_load_len(const unsigned int *__ptr, unsigned int __len) {
  1516.   return (__vector unsigned int)__builtin_s390_vll(__len, __ptr);
  1517. }
  1518.  
  1519. static inline __ATTRS_o_ai __vector signed long long
  1520. vec_load_len(const signed long long *__ptr, unsigned int __len) {
  1521.   return (__vector signed long long)__builtin_s390_vll(__len, __ptr);
  1522. }
  1523.  
  1524. static inline __ATTRS_o_ai __vector unsigned long long
  1525. vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
  1526.   return (__vector unsigned long long)__builtin_s390_vll(__len, __ptr);
  1527. }
  1528.  
  1529. #if __ARCH__ >= 12
  1530. static inline __ATTRS_o_ai __vector float
  1531. vec_load_len(const float *__ptr, unsigned int __len) {
  1532.   return (__vector float)__builtin_s390_vll(__len, __ptr);
  1533. }
  1534. #endif
  1535.  
  1536. static inline __ATTRS_o_ai __vector double
  1537. vec_load_len(const double *__ptr, unsigned int __len) {
  1538.   return (__vector double)__builtin_s390_vll(__len, __ptr);
  1539. }
  1540.  
  1541. /*-- vec_load_len_r ---------------------------------------------------------*/
  1542.  
  1543. #if __ARCH__ >= 12
  1544. static inline __ATTRS_ai __vector unsigned char
  1545. vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {
  1546.   return (__vector unsigned char)__builtin_s390_vlrl(__len, __ptr);
  1547. }
  1548. #endif
  1549.  
  1550. /*-- vec_store_len ----------------------------------------------------------*/
  1551.  
  1552. static inline __ATTRS_o_ai void
  1553. vec_store_len(__vector signed char __vec, signed char *__ptr,
  1554.               unsigned int __len) {
  1555.   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
  1556. }
  1557.  
  1558. static inline __ATTRS_o_ai void
  1559. vec_store_len(__vector unsigned char __vec, unsigned char *__ptr,
  1560.               unsigned int __len) {
  1561.   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
  1562. }
  1563.  
  1564. static inline __ATTRS_o_ai void
  1565. vec_store_len(__vector signed short __vec, signed short *__ptr,
  1566.               unsigned int __len) {
  1567.   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
  1568. }
  1569.  
  1570. static inline __ATTRS_o_ai void
  1571. vec_store_len(__vector unsigned short __vec, unsigned short *__ptr,
  1572.               unsigned int __len) {
  1573.   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
  1574. }
  1575.  
  1576. static inline __ATTRS_o_ai void
  1577. vec_store_len(__vector signed int __vec, signed int *__ptr,
  1578.               unsigned int __len) {
  1579.   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
  1580. }
  1581.  
  1582. static inline __ATTRS_o_ai void
  1583. vec_store_len(__vector unsigned int __vec, unsigned int *__ptr,
  1584.               unsigned int __len) {
  1585.   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
  1586. }
  1587.  
  1588. static inline __ATTRS_o_ai void
  1589. vec_store_len(__vector signed long long __vec, signed long long *__ptr,
  1590.               unsigned int __len) {
  1591.   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
  1592. }
  1593.  
  1594. static inline __ATTRS_o_ai void
  1595. vec_store_len(__vector unsigned long long __vec, unsigned long long *__ptr,
  1596.               unsigned int __len) {
  1597.   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
  1598. }
  1599.  
  1600. #if __ARCH__ >= 12
  1601. static inline __ATTRS_o_ai void
  1602. vec_store_len(__vector float __vec, float *__ptr,
  1603.               unsigned int __len) {
  1604.   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
  1605. }
  1606. #endif
  1607.  
  1608. static inline __ATTRS_o_ai void
  1609. vec_store_len(__vector double __vec, double *__ptr,
  1610.               unsigned int __len) {
  1611.   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
  1612. }
  1613.  
  1614. /*-- vec_store_len_r --------------------------------------------------------*/
  1615.  
  1616. #if __ARCH__ >= 12
  1617. static inline __ATTRS_ai void
  1618. vec_store_len_r(__vector unsigned char __vec, unsigned char *__ptr,
  1619.                 unsigned int __len) {
  1620.   __builtin_s390_vstrl((__vector signed char)__vec, __len, __ptr);
  1621. }
  1622. #endif
  1623.  
  1624. /*-- vec_load_pair ----------------------------------------------------------*/
  1625.  
  1626. static inline __ATTRS_o_ai __vector signed long long
  1627. vec_load_pair(signed long long __a, signed long long __b) {
  1628.   return (__vector signed long long)(__a, __b);
  1629. }
  1630.  
  1631. static inline __ATTRS_o_ai __vector unsigned long long
  1632. vec_load_pair(unsigned long long __a, unsigned long long __b) {
  1633.   return (__vector unsigned long long)(__a, __b);
  1634. }
  1635.  
  1636. /*-- vec_genmask ------------------------------------------------------------*/
  1637.  
  1638. static inline __ATTRS_o_ai __vector unsigned char
  1639. vec_genmask(unsigned short __mask)
  1640.   __constant(__mask) {
  1641.   return (__vector unsigned char)(
  1642.     __mask & 0x8000 ? 0xff : 0,
  1643.     __mask & 0x4000 ? 0xff : 0,
  1644.     __mask & 0x2000 ? 0xff : 0,
  1645.     __mask & 0x1000 ? 0xff : 0,
  1646.     __mask & 0x0800 ? 0xff : 0,
  1647.     __mask & 0x0400 ? 0xff : 0,
  1648.     __mask & 0x0200 ? 0xff : 0,
  1649.     __mask & 0x0100 ? 0xff : 0,
  1650.     __mask & 0x0080 ? 0xff : 0,
  1651.     __mask & 0x0040 ? 0xff : 0,
  1652.     __mask & 0x0020 ? 0xff : 0,
  1653.     __mask & 0x0010 ? 0xff : 0,
  1654.     __mask & 0x0008 ? 0xff : 0,
  1655.     __mask & 0x0004 ? 0xff : 0,
  1656.     __mask & 0x0002 ? 0xff : 0,
  1657.     __mask & 0x0001 ? 0xff : 0);
  1658. }
  1659.  
  1660. /*-- vec_genmasks_* ---------------------------------------------------------*/
  1661.  
  1662. static inline __ATTRS_o_ai __vector unsigned char
  1663. vec_genmasks_8(unsigned char __first, unsigned char __last)
  1664.   __constant(__first) __constant(__last) {
  1665.   unsigned char __bit1 = __first & 7;
  1666.   unsigned char __bit2 = __last & 7;
  1667.   unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
  1668.   unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
  1669.   unsigned char __value = (__bit1 <= __bit2 ?
  1670.                            __mask1 & ~__mask2 :
  1671.                            __mask1 | ~__mask2);
  1672.   return (__vector unsigned char)__value;
  1673. }
  1674.  
  1675. static inline __ATTRS_o_ai __vector unsigned short
  1676. vec_genmasks_16(unsigned char __first, unsigned char __last)
  1677.   __constant(__first) __constant(__last) {
  1678.   unsigned char __bit1 = __first & 15;
  1679.   unsigned char __bit2 = __last & 15;
  1680.   unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
  1681.   unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
  1682.   unsigned short __value = (__bit1 <= __bit2 ?
  1683.                             __mask1 & ~__mask2 :
  1684.                             __mask1 | ~__mask2);
  1685.   return (__vector unsigned short)__value;
  1686. }
  1687.  
  1688. static inline __ATTRS_o_ai __vector unsigned int
  1689. vec_genmasks_32(unsigned char __first, unsigned char __last)
  1690.   __constant(__first) __constant(__last) {
  1691.   unsigned char __bit1 = __first & 31;
  1692.   unsigned char __bit2 = __last & 31;
  1693.   unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
  1694.   unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
  1695.   unsigned int __value = (__bit1 <= __bit2 ?
  1696.                           __mask1 & ~__mask2 :
  1697.                           __mask1 | ~__mask2);
  1698.   return (__vector unsigned int)__value;
  1699. }
  1700.  
  1701. static inline __ATTRS_o_ai __vector unsigned long long
  1702. vec_genmasks_64(unsigned char __first, unsigned char __last)
  1703.   __constant(__first) __constant(__last) {
  1704.   unsigned char __bit1 = __first & 63;
  1705.   unsigned char __bit2 = __last & 63;
  1706.   unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
  1707.   unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
  1708.   unsigned long long __value = (__bit1 <= __bit2 ?
  1709.                                 __mask1 & ~__mask2 :
  1710.                                 __mask1 | ~__mask2);
  1711.   return (__vector unsigned long long)__value;
  1712. }
  1713.  
  1714. /*-- vec_splat --------------------------------------------------------------*/
  1715.  
  1716. static inline __ATTRS_o_ai __vector signed char
  1717. vec_splat(__vector signed char __vec, int __index)
  1718.   __constant_range(__index, 0, 15) {
  1719.   return (__vector signed char)__vec[__index];
  1720. }
  1721.  
  1722. static inline __ATTRS_o_ai __vector __bool char
  1723. vec_splat(__vector __bool char __vec, int __index)
  1724.   __constant_range(__index, 0, 15) {
  1725.   return (__vector __bool char)(__vector unsigned char)__vec[__index];
  1726. }
  1727.  
  1728. static inline __ATTRS_o_ai __vector unsigned char
  1729. vec_splat(__vector unsigned char __vec, int __index)
  1730.   __constant_range(__index, 0, 15) {
  1731.   return (__vector unsigned char)__vec[__index];
  1732. }
  1733.  
  1734. static inline __ATTRS_o_ai __vector signed short
  1735. vec_splat(__vector signed short __vec, int __index)
  1736.   __constant_range(__index, 0, 7) {
  1737.   return (__vector signed short)__vec[__index];
  1738. }
  1739.  
  1740. static inline __ATTRS_o_ai __vector __bool short
  1741. vec_splat(__vector __bool short __vec, int __index)
  1742.   __constant_range(__index, 0, 7) {
  1743.   return (__vector __bool short)(__vector unsigned short)__vec[__index];
  1744. }
  1745.  
  1746. static inline __ATTRS_o_ai __vector unsigned short
  1747. vec_splat(__vector unsigned short __vec, int __index)
  1748.   __constant_range(__index, 0, 7) {
  1749.   return (__vector unsigned short)__vec[__index];
  1750. }
  1751.  
  1752. static inline __ATTRS_o_ai __vector signed int
  1753. vec_splat(__vector signed int __vec, int __index)
  1754.   __constant_range(__index, 0, 3) {
  1755.   return (__vector signed int)__vec[__index];
  1756. }
  1757.  
  1758. static inline __ATTRS_o_ai __vector __bool int
  1759. vec_splat(__vector __bool int __vec, int __index)
  1760.   __constant_range(__index, 0, 3) {
  1761.   return (__vector __bool int)(__vector unsigned int)__vec[__index];
  1762. }
  1763.  
  1764. static inline __ATTRS_o_ai __vector unsigned int
  1765. vec_splat(__vector unsigned int __vec, int __index)
  1766.   __constant_range(__index, 0, 3) {
  1767.   return (__vector unsigned int)__vec[__index];
  1768. }
  1769.  
  1770. static inline __ATTRS_o_ai __vector signed long long
  1771. vec_splat(__vector signed long long __vec, int __index)
  1772.   __constant_range(__index, 0, 1) {
  1773.   return (__vector signed long long)__vec[__index];
  1774. }
  1775.  
  1776. static inline __ATTRS_o_ai __vector __bool long long
  1777. vec_splat(__vector __bool long long __vec, int __index)
  1778.   __constant_range(__index, 0, 1) {
  1779.   return ((__vector __bool long long)
  1780.           (__vector unsigned long long)__vec[__index]);
  1781. }
  1782.  
  1783. static inline __ATTRS_o_ai __vector unsigned long long
  1784. vec_splat(__vector unsigned long long __vec, int __index)
  1785.   __constant_range(__index, 0, 1) {
  1786.   return (__vector unsigned long long)__vec[__index];
  1787. }
  1788.  
  1789. #if __ARCH__ >= 12
  1790. static inline __ATTRS_o_ai __vector float
  1791. vec_splat(__vector float __vec, int __index)
  1792.   __constant_range(__index, 0, 3) {
  1793.   return (__vector float)__vec[__index];
  1794. }
  1795. #endif
  1796.  
  1797. static inline __ATTRS_o_ai __vector double
  1798. vec_splat(__vector double __vec, int __index)
  1799.   __constant_range(__index, 0, 1) {
  1800.   return (__vector double)__vec[__index];
  1801. }
  1802.  
  1803. /*-- vec_splat_s* -----------------------------------------------------------*/
  1804.  
  1805. static inline __ATTRS_ai __vector signed char
  1806. vec_splat_s8(signed char __scalar)
  1807.   __constant(__scalar) {
  1808.   return (__vector signed char)__scalar;
  1809. }
  1810.  
  1811. static inline __ATTRS_ai __vector signed short
  1812. vec_splat_s16(signed short __scalar)
  1813.   __constant(__scalar) {
  1814.   return (__vector signed short)__scalar;
  1815. }
  1816.  
  1817. static inline __ATTRS_ai __vector signed int
  1818. vec_splat_s32(signed short __scalar)
  1819.   __constant(__scalar) {
  1820.   return (__vector signed int)(signed int)__scalar;
  1821. }
  1822.  
  1823. static inline __ATTRS_ai __vector signed long long
  1824. vec_splat_s64(signed short __scalar)
  1825.   __constant(__scalar) {
  1826.   return (__vector signed long long)(signed long)__scalar;
  1827. }
  1828.  
  1829. /*-- vec_splat_u* -----------------------------------------------------------*/
  1830.  
  1831. static inline __ATTRS_ai __vector unsigned char
  1832. vec_splat_u8(unsigned char __scalar)
  1833.   __constant(__scalar) {
  1834.   return (__vector unsigned char)__scalar;
  1835. }
  1836.  
  1837. static inline __ATTRS_ai __vector unsigned short
  1838. vec_splat_u16(unsigned short __scalar)
  1839.   __constant(__scalar) {
  1840.   return (__vector unsigned short)__scalar;
  1841. }
  1842.  
  1843. static inline __ATTRS_ai __vector unsigned int
  1844. vec_splat_u32(signed short __scalar)
  1845.   __constant(__scalar) {
  1846.   return (__vector unsigned int)(signed int)__scalar;
  1847. }
  1848.  
  1849. static inline __ATTRS_ai __vector unsigned long long
  1850. vec_splat_u64(signed short __scalar)
  1851.   __constant(__scalar) {
  1852.   return (__vector unsigned long long)(signed long long)__scalar;
  1853. }
  1854.  
  1855. /*-- vec_splats -------------------------------------------------------------*/
  1856.  
  1857. static inline __ATTRS_o_ai __vector signed char
  1858. vec_splats(signed char __scalar) {
  1859.   return (__vector signed char)__scalar;
  1860. }
  1861.  
  1862. static inline __ATTRS_o_ai __vector unsigned char
  1863. vec_splats(unsigned char __scalar) {
  1864.   return (__vector unsigned char)__scalar;
  1865. }
  1866.  
  1867. static inline __ATTRS_o_ai __vector signed short
  1868. vec_splats(signed short __scalar) {
  1869.   return (__vector signed short)__scalar;
  1870. }
  1871.  
  1872. static inline __ATTRS_o_ai __vector unsigned short
  1873. vec_splats(unsigned short __scalar) {
  1874.   return (__vector unsigned short)__scalar;
  1875. }
  1876.  
  1877. static inline __ATTRS_o_ai __vector signed int
  1878. vec_splats(signed int __scalar) {
  1879.   return (__vector signed int)__scalar;
  1880. }
  1881.  
  1882. static inline __ATTRS_o_ai __vector unsigned int
  1883. vec_splats(unsigned int __scalar) {
  1884.   return (__vector unsigned int)__scalar;
  1885. }
  1886.  
  1887. static inline __ATTRS_o_ai __vector signed long long
  1888. vec_splats(signed long long __scalar) {
  1889.   return (__vector signed long long)__scalar;
  1890. }
  1891.  
  1892. static inline __ATTRS_o_ai __vector unsigned long long
  1893. vec_splats(unsigned long long __scalar) {
  1894.   return (__vector unsigned long long)__scalar;
  1895. }
  1896.  
  1897. #if __ARCH__ >= 12
  1898. static inline __ATTRS_o_ai __vector float
  1899. vec_splats(float __scalar) {
  1900.   return (__vector float)__scalar;
  1901. }
  1902. #endif
  1903.  
  1904. static inline __ATTRS_o_ai __vector double
  1905. vec_splats(double __scalar) {
  1906.   return (__vector double)__scalar;
  1907. }
  1908.  
  1909. /*-- vec_extend_s64 ---------------------------------------------------------*/
  1910.  
  1911. static inline __ATTRS_o_ai __vector signed long long
  1912. vec_extend_s64(__vector signed char __a) {
  1913.   return (__vector signed long long)(__a[7], __a[15]);
  1914. }
  1915.  
  1916. static inline __ATTRS_o_ai __vector signed long long
  1917. vec_extend_s64(__vector signed short __a) {
  1918.   return (__vector signed long long)(__a[3], __a[7]);
  1919. }
  1920.  
  1921. static inline __ATTRS_o_ai __vector signed long long
  1922. vec_extend_s64(__vector signed int __a) {
  1923.   return (__vector signed long long)(__a[1], __a[3]);
  1924. }
  1925.  
  1926. /*-- vec_mergeh -------------------------------------------------------------*/
  1927.  
  1928. static inline __ATTRS_o_ai __vector signed char
  1929. vec_mergeh(__vector signed char __a, __vector signed char __b) {
  1930.   return (__vector signed char)(
  1931.     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
  1932.     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
  1933. }
  1934.  
  1935. static inline __ATTRS_o_ai __vector __bool char
  1936. vec_mergeh(__vector __bool char __a, __vector __bool char __b) {
  1937.   return (__vector __bool char)(
  1938.     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
  1939.     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
  1940. }
  1941.  
  1942. static inline __ATTRS_o_ai __vector unsigned char
  1943. vec_mergeh(__vector unsigned char __a, __vector unsigned char __b) {
  1944.   return (__vector unsigned char)(
  1945.     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
  1946.     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
  1947. }
  1948.  
  1949. static inline __ATTRS_o_ai __vector signed short
  1950. vec_mergeh(__vector signed short __a, __vector signed short __b) {
  1951.   return (__vector signed short)(
  1952.     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
  1953. }
  1954.  
  1955. static inline __ATTRS_o_ai __vector __bool short
  1956. vec_mergeh(__vector __bool short __a, __vector __bool short __b) {
  1957.   return (__vector __bool short)(
  1958.     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
  1959. }
  1960.  
  1961. static inline __ATTRS_o_ai __vector unsigned short
  1962. vec_mergeh(__vector unsigned short __a, __vector unsigned short __b) {
  1963.   return (__vector unsigned short)(
  1964.     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
  1965. }
  1966.  
  1967. static inline __ATTRS_o_ai __vector signed int
  1968. vec_mergeh(__vector signed int __a, __vector signed int __b) {
  1969.   return (__vector signed int)(__a[0], __b[0], __a[1], __b[1]);
  1970. }
  1971.  
  1972. static inline __ATTRS_o_ai __vector __bool int
  1973. vec_mergeh(__vector __bool int __a, __vector __bool int __b) {
  1974.   return (__vector __bool int)(__a[0], __b[0], __a[1], __b[1]);
  1975. }
  1976.  
  1977. static inline __ATTRS_o_ai __vector unsigned int
  1978. vec_mergeh(__vector unsigned int __a, __vector unsigned int __b) {
  1979.   return (__vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
  1980. }
  1981.  
  1982. static inline __ATTRS_o_ai __vector signed long long
  1983. vec_mergeh(__vector signed long long __a, __vector signed long long __b) {
  1984.   return (__vector signed long long)(__a[0], __b[0]);
  1985. }
  1986.  
  1987. static inline __ATTRS_o_ai __vector __bool long long
  1988. vec_mergeh(__vector __bool long long __a, __vector __bool long long __b) {
  1989.   return (__vector __bool long long)(__a[0], __b[0]);
  1990. }
  1991.  
  1992. static inline __ATTRS_o_ai __vector unsigned long long
  1993. vec_mergeh(__vector unsigned long long __a, __vector unsigned long long __b) {
  1994.   return (__vector unsigned long long)(__a[0], __b[0]);
  1995. }
  1996.  
  1997. #if __ARCH__ >= 12
  1998. static inline __ATTRS_o_ai __vector float
  1999. vec_mergeh(__vector float __a, __vector float __b) {
  2000.   return (__vector float)(__a[0], __b[0], __a[1], __b[1]);
  2001. }
  2002. #endif
  2003.  
  2004. static inline __ATTRS_o_ai __vector double
  2005. vec_mergeh(__vector double __a, __vector double __b) {
  2006.   return (__vector double)(__a[0], __b[0]);
  2007. }
  2008.  
  2009. /*-- vec_mergel -------------------------------------------------------------*/
  2010.  
  2011. static inline __ATTRS_o_ai __vector signed char
  2012. vec_mergel(__vector signed char __a, __vector signed char __b) {
  2013.   return (__vector signed char)(
  2014.     __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
  2015.     __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
  2016. }
  2017.  
  2018. static inline __ATTRS_o_ai __vector __bool char
  2019. vec_mergel(__vector __bool char __a, __vector __bool char __b) {
  2020.   return (__vector __bool char)(
  2021.     __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
  2022.     __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
  2023. }
  2024.  
  2025. static inline __ATTRS_o_ai __vector unsigned char
  2026. vec_mergel(__vector unsigned char __a, __vector unsigned char __b) {
  2027.   return (__vector unsigned char)(
  2028.     __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
  2029.     __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
  2030. }
  2031.  
  2032. static inline __ATTRS_o_ai __vector signed short
  2033. vec_mergel(__vector signed short __a, __vector signed short __b) {
  2034.   return (__vector signed short)(
  2035.     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
  2036. }
  2037.  
  2038. static inline __ATTRS_o_ai __vector __bool short
  2039. vec_mergel(__vector __bool short __a, __vector __bool short __b) {
  2040.   return (__vector __bool short)(
  2041.     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
  2042. }
  2043.  
  2044. static inline __ATTRS_o_ai __vector unsigned short
  2045. vec_mergel(__vector unsigned short __a, __vector unsigned short __b) {
  2046.   return (__vector unsigned short)(
  2047.     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
  2048. }
  2049.  
  2050. static inline __ATTRS_o_ai __vector signed int
  2051. vec_mergel(__vector signed int __a, __vector signed int __b) {
  2052.   return (__vector signed int)(__a[2], __b[2], __a[3], __b[3]);
  2053. }
  2054.  
  2055. static inline __ATTRS_o_ai __vector __bool int
  2056. vec_mergel(__vector __bool int __a, __vector __bool int __b) {
  2057.   return (__vector __bool int)(__a[2], __b[2], __a[3], __b[3]);
  2058. }
  2059.  
  2060. static inline __ATTRS_o_ai __vector unsigned int
  2061. vec_mergel(__vector unsigned int __a, __vector unsigned int __b) {
  2062.   return (__vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
  2063. }
  2064.  
  2065. static inline __ATTRS_o_ai __vector signed long long
  2066. vec_mergel(__vector signed long long __a, __vector signed long long __b) {
  2067.   return (__vector signed long long)(__a[1], __b[1]);
  2068. }
  2069.  
  2070. static inline __ATTRS_o_ai __vector __bool long long
  2071. vec_mergel(__vector __bool long long __a, __vector __bool long long __b) {
  2072.   return (__vector __bool long long)(__a[1], __b[1]);
  2073. }
  2074.  
  2075. static inline __ATTRS_o_ai __vector unsigned long long
  2076. vec_mergel(__vector unsigned long long __a, __vector unsigned long long __b) {
  2077.   return (__vector unsigned long long)(__a[1], __b[1]);
  2078. }
  2079.  
  2080. #if __ARCH__ >= 12
  2081. static inline __ATTRS_o_ai __vector float
  2082. vec_mergel(__vector float __a, __vector float __b) {
  2083.   return (__vector float)(__a[2], __b[2], __a[3], __b[3]);
  2084. }
  2085. #endif
  2086.  
  2087. static inline __ATTRS_o_ai __vector double
  2088. vec_mergel(__vector double __a, __vector double __b) {
  2089.   return (__vector double)(__a[1], __b[1]);
  2090. }
  2091.  
  2092. /*-- vec_pack ---------------------------------------------------------------*/
  2093.  
  2094. static inline __ATTRS_o_ai __vector signed char
  2095. vec_pack(__vector signed short __a, __vector signed short __b) {
  2096.   __vector signed char __ac = (__vector signed char)__a;
  2097.   __vector signed char __bc = (__vector signed char)__b;
  2098.   return (__vector signed char)(
  2099.     __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
  2100.     __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
  2101. }
  2102.  
  2103. static inline __ATTRS_o_ai __vector __bool char
  2104. vec_pack(__vector __bool short __a, __vector __bool short __b) {
  2105.   __vector __bool char __ac = (__vector __bool char)__a;
  2106.   __vector __bool char __bc = (__vector __bool char)__b;
  2107.   return (__vector __bool char)(
  2108.     __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
  2109.     __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
  2110. }
  2111.  
  2112. static inline __ATTRS_o_ai __vector unsigned char
  2113. vec_pack(__vector unsigned short __a, __vector unsigned short __b) {
  2114.   __vector unsigned char __ac = (__vector unsigned char)__a;
  2115.   __vector unsigned char __bc = (__vector unsigned char)__b;
  2116.   return (__vector unsigned char)(
  2117.     __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
  2118.     __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
  2119. }
  2120.  
  2121. static inline __ATTRS_o_ai __vector signed short
  2122. vec_pack(__vector signed int __a, __vector signed int __b) {
  2123.   __vector signed short __ac = (__vector signed short)__a;
  2124.   __vector signed short __bc = (__vector signed short)__b;
  2125.   return (__vector signed short)(
  2126.     __ac[1], __ac[3], __ac[5], __ac[7],
  2127.     __bc[1], __bc[3], __bc[5], __bc[7]);
  2128. }
  2129.  
  2130. static inline __ATTRS_o_ai __vector __bool short
  2131. vec_pack(__vector __bool int __a, __vector __bool int __b) {
  2132.   __vector __bool short __ac = (__vector __bool short)__a;
  2133.   __vector __bool short __bc = (__vector __bool short)__b;
  2134.   return (__vector __bool short)(
  2135.     __ac[1], __ac[3], __ac[5], __ac[7],
  2136.     __bc[1], __bc[3], __bc[5], __bc[7]);
  2137. }
  2138.  
  2139. static inline __ATTRS_o_ai __vector unsigned short
  2140. vec_pack(__vector unsigned int __a, __vector unsigned int __b) {
  2141.   __vector unsigned short __ac = (__vector unsigned short)__a;
  2142.   __vector unsigned short __bc = (__vector unsigned short)__b;
  2143.   return (__vector unsigned short)(
  2144.     __ac[1], __ac[3], __ac[5], __ac[7],
  2145.     __bc[1], __bc[3], __bc[5], __bc[7]);
  2146. }
  2147.  
  2148. static inline __ATTRS_o_ai __vector signed int
  2149. vec_pack(__vector signed long long __a, __vector signed long long __b) {
  2150.   __vector signed int __ac = (__vector signed int)__a;
  2151.   __vector signed int __bc = (__vector signed int)__b;
  2152.   return (__vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
  2153. }
  2154.  
  2155. static inline __ATTRS_o_ai __vector __bool int
  2156. vec_pack(__vector __bool long long __a, __vector __bool long long __b) {
  2157.   __vector __bool int __ac = (__vector __bool int)__a;
  2158.   __vector __bool int __bc = (__vector __bool int)__b;
  2159.   return (__vector __bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
  2160. }
  2161.  
  2162. static inline __ATTRS_o_ai __vector unsigned int
  2163. vec_pack(__vector unsigned long long __a, __vector unsigned long long __b) {
  2164.   __vector unsigned int __ac = (__vector unsigned int)__a;
  2165.   __vector unsigned int __bc = (__vector unsigned int)__b;
  2166.   return (__vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
  2167. }
  2168.  
  2169. /*-- vec_packs --------------------------------------------------------------*/
  2170.  
  2171. static inline __ATTRS_o_ai __vector signed char
  2172. vec_packs(__vector signed short __a, __vector signed short __b) {
  2173.   return __builtin_s390_vpksh(__a, __b);
  2174. }
  2175.  
  2176. static inline __ATTRS_o_ai __vector unsigned char
  2177. vec_packs(__vector unsigned short __a, __vector unsigned short __b) {
  2178.   return __builtin_s390_vpklsh(__a, __b);
  2179. }
  2180.  
  2181. static inline __ATTRS_o_ai __vector signed short
  2182. vec_packs(__vector signed int __a, __vector signed int __b) {
  2183.   return __builtin_s390_vpksf(__a, __b);
  2184. }
  2185.  
  2186. static inline __ATTRS_o_ai __vector unsigned short
  2187. vec_packs(__vector unsigned int __a, __vector unsigned int __b) {
  2188.   return __builtin_s390_vpklsf(__a, __b);
  2189. }
  2190.  
  2191. static inline __ATTRS_o_ai __vector signed int
  2192. vec_packs(__vector signed long long __a, __vector signed long long __b) {
  2193.   return __builtin_s390_vpksg(__a, __b);
  2194. }
  2195.  
  2196. static inline __ATTRS_o_ai __vector unsigned int
  2197. vec_packs(__vector unsigned long long __a, __vector unsigned long long __b) {
  2198.   return __builtin_s390_vpklsg(__a, __b);
  2199. }
  2200.  
  2201. /*-- vec_packs_cc -----------------------------------------------------------*/
  2202.  
  2203. static inline __ATTRS_o_ai __vector signed char
  2204. vec_packs_cc(__vector signed short __a, __vector signed short __b, int *__cc) {
  2205.   return __builtin_s390_vpkshs(__a, __b, __cc);
  2206. }
  2207.  
  2208. static inline __ATTRS_o_ai __vector unsigned char
  2209. vec_packs_cc(__vector unsigned short __a, __vector unsigned short __b,
  2210.              int *__cc) {
  2211.   return __builtin_s390_vpklshs(__a, __b, __cc);
  2212. }
  2213.  
  2214. static inline __ATTRS_o_ai __vector signed short
  2215. vec_packs_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
  2216.   return __builtin_s390_vpksfs(__a, __b, __cc);
  2217. }
  2218.  
  2219. static inline __ATTRS_o_ai __vector unsigned short
  2220. vec_packs_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
  2221.   return __builtin_s390_vpklsfs(__a, __b, __cc);
  2222. }
  2223.  
  2224. static inline __ATTRS_o_ai __vector signed int
  2225. vec_packs_cc(__vector signed long long __a, __vector signed long long __b,
  2226.              int *__cc) {
  2227.   return __builtin_s390_vpksgs(__a, __b, __cc);
  2228. }
  2229.  
  2230. static inline __ATTRS_o_ai __vector unsigned int
  2231. vec_packs_cc(__vector unsigned long long __a, __vector unsigned long long __b,
  2232.              int *__cc) {
  2233.   return __builtin_s390_vpklsgs(__a, __b, __cc);
  2234. }
  2235.  
  2236. /*-- vec_packsu -------------------------------------------------------------*/
  2237.  
  2238. static inline __ATTRS_o_ai __vector unsigned char
  2239. vec_packsu(__vector signed short __a, __vector signed short __b) {
  2240.   const __vector signed short __zero = (__vector signed short)0;
  2241.   return __builtin_s390_vpklsh(
  2242.     (__vector unsigned short)(__a >= __zero) & (__vector unsigned short)__a,
  2243.     (__vector unsigned short)(__b >= __zero) & (__vector unsigned short)__b);
  2244. }
  2245.  
  2246. static inline __ATTRS_o_ai __vector unsigned char
  2247. vec_packsu(__vector unsigned short __a, __vector unsigned short __b) {
  2248.   return __builtin_s390_vpklsh(__a, __b);
  2249. }
  2250.  
  2251. static inline __ATTRS_o_ai __vector unsigned short
  2252. vec_packsu(__vector signed int __a, __vector signed int __b) {
  2253.   const __vector signed int __zero = (__vector signed int)0;
  2254.   return __builtin_s390_vpklsf(
  2255.     (__vector unsigned int)(__a >= __zero) & (__vector unsigned int)__a,
  2256.     (__vector unsigned int)(__b >= __zero) & (__vector unsigned int)__b);
  2257. }
  2258.  
  2259. static inline __ATTRS_o_ai __vector unsigned short
  2260. vec_packsu(__vector unsigned int __a, __vector unsigned int __b) {
  2261.   return __builtin_s390_vpklsf(__a, __b);
  2262. }
  2263.  
  2264. static inline __ATTRS_o_ai __vector unsigned int
  2265. vec_packsu(__vector signed long long __a, __vector signed long long __b) {
  2266.   const __vector signed long long __zero = (__vector signed long long)0;
  2267.   return __builtin_s390_vpklsg(
  2268.     (__vector unsigned long long)(__a >= __zero) &
  2269.     (__vector unsigned long long)__a,
  2270.     (__vector unsigned long long)(__b >= __zero) &
  2271.     (__vector unsigned long long)__b);
  2272. }
  2273.  
  2274. static inline __ATTRS_o_ai __vector unsigned int
  2275. vec_packsu(__vector unsigned long long __a, __vector unsigned long long __b) {
  2276.   return __builtin_s390_vpklsg(__a, __b);
  2277. }
  2278.  
  2279. /*-- vec_packsu_cc ----------------------------------------------------------*/
  2280.  
  2281. static inline __ATTRS_o_ai __vector unsigned char
  2282. vec_packsu_cc(__vector unsigned short __a, __vector unsigned short __b,
  2283.               int *__cc) {
  2284.   return __builtin_s390_vpklshs(__a, __b, __cc);
  2285. }
  2286.  
  2287. static inline __ATTRS_o_ai __vector unsigned short
  2288. vec_packsu_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
  2289.   return __builtin_s390_vpklsfs(__a, __b, __cc);
  2290. }
  2291.  
  2292. static inline __ATTRS_o_ai __vector unsigned int
  2293. vec_packsu_cc(__vector unsigned long long __a, __vector unsigned long long __b,
  2294.               int *__cc) {
  2295.   return __builtin_s390_vpklsgs(__a, __b, __cc);
  2296. }
  2297.  
  2298. /*-- vec_unpackh ------------------------------------------------------------*/
  2299.  
  2300. static inline __ATTRS_o_ai __vector signed short
  2301. vec_unpackh(__vector signed char __a) {
  2302.   return __builtin_s390_vuphb(__a);
  2303. }
  2304.  
  2305. static inline __ATTRS_o_ai __vector __bool short
  2306. vec_unpackh(__vector __bool char __a) {
  2307.   return ((__vector __bool short)
  2308.           __builtin_s390_vuphb((__vector signed char)__a));
  2309. }
  2310.  
  2311. static inline __ATTRS_o_ai __vector unsigned short
  2312. vec_unpackh(__vector unsigned char __a) {
  2313.   return __builtin_s390_vuplhb(__a);
  2314. }
  2315.  
  2316. static inline __ATTRS_o_ai __vector signed int
  2317. vec_unpackh(__vector signed short __a) {
  2318.   return __builtin_s390_vuphh(__a);
  2319. }
  2320.  
  2321. static inline __ATTRS_o_ai __vector __bool int
  2322. vec_unpackh(__vector __bool short __a) {
  2323.   return (__vector __bool int)__builtin_s390_vuphh((__vector signed short)__a);
  2324. }
  2325.  
  2326. static inline __ATTRS_o_ai __vector unsigned int
  2327. vec_unpackh(__vector unsigned short __a) {
  2328.   return __builtin_s390_vuplhh(__a);
  2329. }
  2330.  
  2331. static inline __ATTRS_o_ai __vector signed long long
  2332. vec_unpackh(__vector signed int __a) {
  2333.   return __builtin_s390_vuphf(__a);
  2334. }
  2335.  
  2336. static inline __ATTRS_o_ai __vector __bool long long
  2337. vec_unpackh(__vector __bool int __a) {
  2338.   return ((__vector __bool long long)
  2339.           __builtin_s390_vuphf((__vector signed int)__a));
  2340. }
  2341.  
  2342. static inline __ATTRS_o_ai __vector unsigned long long
  2343. vec_unpackh(__vector unsigned int __a) {
  2344.   return __builtin_s390_vuplhf(__a);
  2345. }
  2346.  
  2347. /*-- vec_unpackl ------------------------------------------------------------*/
  2348.  
  2349. static inline __ATTRS_o_ai __vector signed short
  2350. vec_unpackl(__vector signed char __a) {
  2351.   return __builtin_s390_vuplb(__a);
  2352. }
  2353.  
  2354. static inline __ATTRS_o_ai __vector __bool short
  2355. vec_unpackl(__vector __bool char __a) {
  2356.   return ((__vector __bool short)
  2357.           __builtin_s390_vuplb((__vector signed char)__a));
  2358. }
  2359.  
  2360. static inline __ATTRS_o_ai __vector unsigned short
  2361. vec_unpackl(__vector unsigned char __a) {
  2362.   return __builtin_s390_vupllb(__a);
  2363. }
  2364.  
  2365. static inline __ATTRS_o_ai __vector signed int
  2366. vec_unpackl(__vector signed short __a) {
  2367.   return __builtin_s390_vuplhw(__a);
  2368. }
  2369.  
  2370. static inline __ATTRS_o_ai __vector __bool int
  2371. vec_unpackl(__vector __bool short __a) {
  2372.   return ((__vector __bool int)
  2373.           __builtin_s390_vuplhw((__vector signed short)__a));
  2374. }
  2375.  
  2376. static inline __ATTRS_o_ai __vector unsigned int
  2377. vec_unpackl(__vector unsigned short __a) {
  2378.   return __builtin_s390_vupllh(__a);
  2379. }
  2380.  
  2381. static inline __ATTRS_o_ai __vector signed long long
  2382. vec_unpackl(__vector signed int __a) {
  2383.   return __builtin_s390_vuplf(__a);
  2384. }
  2385.  
  2386. static inline __ATTRS_o_ai __vector __bool long long
  2387. vec_unpackl(__vector __bool int __a) {
  2388.   return ((__vector __bool long long)
  2389.           __builtin_s390_vuplf((__vector signed int)__a));
  2390. }
  2391.  
  2392. static inline __ATTRS_o_ai __vector unsigned long long
  2393. vec_unpackl(__vector unsigned int __a) {
  2394.   return __builtin_s390_vupllf(__a);
  2395. }
  2396.  
  2397. /*-- vec_cmpeq --------------------------------------------------------------*/
  2398.  
  2399. static inline __ATTRS_o_ai __vector __bool char
  2400. vec_cmpeq(__vector __bool char __a, __vector __bool char __b) {
  2401.   return (__vector __bool char)(__a == __b);
  2402. }
  2403.  
  2404. static inline __ATTRS_o_ai __vector __bool char
  2405. vec_cmpeq(__vector signed char __a, __vector signed char __b) {
  2406.   return (__vector __bool char)(__a == __b);
  2407. }
  2408.  
  2409. static inline __ATTRS_o_ai __vector __bool char
  2410. vec_cmpeq(__vector unsigned char __a, __vector unsigned char __b) {
  2411.   return (__vector __bool char)(__a == __b);
  2412. }
  2413.  
  2414. static inline __ATTRS_o_ai __vector __bool short
  2415. vec_cmpeq(__vector __bool short __a, __vector __bool short __b) {
  2416.   return (__vector __bool short)(__a == __b);
  2417. }
  2418.  
  2419. static inline __ATTRS_o_ai __vector __bool short
  2420. vec_cmpeq(__vector signed short __a, __vector signed short __b) {
  2421.   return (__vector __bool short)(__a == __b);
  2422. }
  2423.  
  2424. static inline __ATTRS_o_ai __vector __bool short
  2425. vec_cmpeq(__vector unsigned short __a, __vector unsigned short __b) {
  2426.   return (__vector __bool short)(__a == __b);
  2427. }
  2428.  
  2429. static inline __ATTRS_o_ai __vector __bool int
  2430. vec_cmpeq(__vector __bool int __a, __vector __bool int __b) {
  2431.   return (__vector __bool int)(__a == __b);
  2432. }
  2433.  
  2434. static inline __ATTRS_o_ai __vector __bool int
  2435. vec_cmpeq(__vector signed int __a, __vector signed int __b) {
  2436.   return (__vector __bool int)(__a == __b);
  2437. }
  2438.  
  2439. static inline __ATTRS_o_ai __vector __bool int
  2440. vec_cmpeq(__vector unsigned int __a, __vector unsigned int __b) {
  2441.   return (__vector __bool int)(__a == __b);
  2442. }
  2443.  
  2444. static inline __ATTRS_o_ai __vector __bool long long
  2445. vec_cmpeq(__vector __bool long long __a, __vector __bool long long __b) {
  2446.   return (__vector __bool long long)(__a == __b);
  2447. }
  2448.  
  2449. static inline __ATTRS_o_ai __vector __bool long long
  2450. vec_cmpeq(__vector signed long long __a, __vector signed long long __b) {
  2451.   return (__vector __bool long long)(__a == __b);
  2452. }
  2453.  
  2454. static inline __ATTRS_o_ai __vector __bool long long
  2455. vec_cmpeq(__vector unsigned long long __a, __vector unsigned long long __b) {
  2456.   return (__vector __bool long long)(__a == __b);
  2457. }
  2458.  
  2459. #if __ARCH__ >= 12
  2460. static inline __ATTRS_o_ai __vector __bool int
  2461. vec_cmpeq(__vector float __a, __vector float __b) {
  2462.   return (__vector __bool int)(__a == __b);
  2463. }
  2464. #endif
  2465.  
  2466. static inline __ATTRS_o_ai __vector __bool long long
  2467. vec_cmpeq(__vector double __a, __vector double __b) {
  2468.   return (__vector __bool long long)(__a == __b);
  2469. }
  2470.  
  2471. /*-- vec_cmpge --------------------------------------------------------------*/
  2472.  
  2473. static inline __ATTRS_o_ai __vector __bool char
  2474. vec_cmpge(__vector signed char __a, __vector signed char __b) {
  2475.   return (__vector __bool char)(__a >= __b);
  2476. }
  2477.  
  2478. static inline __ATTRS_o_ai __vector __bool char
  2479. vec_cmpge(__vector unsigned char __a, __vector unsigned char __b) {
  2480.   return (__vector __bool char)(__a >= __b);
  2481. }
  2482.  
  2483. static inline __ATTRS_o_ai __vector __bool short
  2484. vec_cmpge(__vector signed short __a, __vector signed short __b) {
  2485.   return (__vector __bool short)(__a >= __b);
  2486. }
  2487.  
  2488. static inline __ATTRS_o_ai __vector __bool short
  2489. vec_cmpge(__vector unsigned short __a, __vector unsigned short __b) {
  2490.   return (__vector __bool short)(__a >= __b);
  2491. }
  2492.  
  2493. static inline __ATTRS_o_ai __vector __bool int
  2494. vec_cmpge(__vector signed int __a, __vector signed int __b) {
  2495.   return (__vector __bool int)(__a >= __b);
  2496. }
  2497.  
  2498. static inline __ATTRS_o_ai __vector __bool int
  2499. vec_cmpge(__vector unsigned int __a, __vector unsigned int __b) {
  2500.   return (__vector __bool int)(__a >= __b);
  2501. }
  2502.  
  2503. static inline __ATTRS_o_ai __vector __bool long long
  2504. vec_cmpge(__vector signed long long __a, __vector signed long long __b) {
  2505.   return (__vector __bool long long)(__a >= __b);
  2506. }
  2507.  
  2508. static inline __ATTRS_o_ai __vector __bool long long
  2509. vec_cmpge(__vector unsigned long long __a, __vector unsigned long long __b) {
  2510.   return (__vector __bool long long)(__a >= __b);
  2511. }
  2512.  
  2513. #if __ARCH__ >= 12
  2514. static inline __ATTRS_o_ai __vector __bool int
  2515. vec_cmpge(__vector float __a, __vector float __b) {
  2516.   return (__vector __bool int)(__a >= __b);
  2517. }
  2518. #endif
  2519.  
  2520. static inline __ATTRS_o_ai __vector __bool long long
  2521. vec_cmpge(__vector double __a, __vector double __b) {
  2522.   return (__vector __bool long long)(__a >= __b);
  2523. }
  2524.  
  2525. /*-- vec_cmpgt --------------------------------------------------------------*/
  2526.  
  2527. static inline __ATTRS_o_ai __vector __bool char
  2528. vec_cmpgt(__vector signed char __a, __vector signed char __b) {
  2529.   return (__vector __bool char)(__a > __b);
  2530. }
  2531.  
  2532. static inline __ATTRS_o_ai __vector __bool char
  2533. vec_cmpgt(__vector unsigned char __a, __vector unsigned char __b) {
  2534.   return (__vector __bool char)(__a > __b);
  2535. }
  2536.  
  2537. static inline __ATTRS_o_ai __vector __bool short
  2538. vec_cmpgt(__vector signed short __a, __vector signed short __b) {
  2539.   return (__vector __bool short)(__a > __b);
  2540. }
  2541.  
  2542. static inline __ATTRS_o_ai __vector __bool short
  2543. vec_cmpgt(__vector unsigned short __a, __vector unsigned short __b) {
  2544.   return (__vector __bool short)(__a > __b);
  2545. }
  2546.  
  2547. static inline __ATTRS_o_ai __vector __bool int
  2548. vec_cmpgt(__vector signed int __a, __vector signed int __b) {
  2549.   return (__vector __bool int)(__a > __b);
  2550. }
  2551.  
  2552. static inline __ATTRS_o_ai __vector __bool int
  2553. vec_cmpgt(__vector unsigned int __a, __vector unsigned int __b) {
  2554.   return (__vector __bool int)(__a > __b);
  2555. }
  2556.  
  2557. static inline __ATTRS_o_ai __vector __bool long long
  2558. vec_cmpgt(__vector signed long long __a, __vector signed long long __b) {
  2559.   return (__vector __bool long long)(__a > __b);
  2560. }
  2561.  
  2562. static inline __ATTRS_o_ai __vector __bool long long
  2563. vec_cmpgt(__vector unsigned long long __a, __vector unsigned long long __b) {
  2564.   return (__vector __bool long long)(__a > __b);
  2565. }
  2566.  
  2567. #if __ARCH__ >= 12
  2568. static inline __ATTRS_o_ai __vector __bool int
  2569. vec_cmpgt(__vector float __a, __vector float __b) {
  2570.   return (__vector __bool int)(__a > __b);
  2571. }
  2572. #endif
  2573.  
  2574. static inline __ATTRS_o_ai __vector __bool long long
  2575. vec_cmpgt(__vector double __a, __vector double __b) {
  2576.   return (__vector __bool long long)(__a > __b);
  2577. }
  2578.  
  2579. /*-- vec_cmple --------------------------------------------------------------*/
  2580.  
  2581. static inline __ATTRS_o_ai __vector __bool char
  2582. vec_cmple(__vector signed char __a, __vector signed char __b) {
  2583.   return (__vector __bool char)(__a <= __b);
  2584. }
  2585.  
  2586. static inline __ATTRS_o_ai __vector __bool char
  2587. vec_cmple(__vector unsigned char __a, __vector unsigned char __b) {
  2588.   return (__vector __bool char)(__a <= __b);
  2589. }
  2590.  
  2591. static inline __ATTRS_o_ai __vector __bool short
  2592. vec_cmple(__vector signed short __a, __vector signed short __b) {
  2593.   return (__vector __bool short)(__a <= __b);
  2594. }
  2595.  
  2596. static inline __ATTRS_o_ai __vector __bool short
  2597. vec_cmple(__vector unsigned short __a, __vector unsigned short __b) {
  2598.   return (__vector __bool short)(__a <= __b);
  2599. }
  2600.  
  2601. static inline __ATTRS_o_ai __vector __bool int
  2602. vec_cmple(__vector signed int __a, __vector signed int __b) {
  2603.   return (__vector __bool int)(__a <= __b);
  2604. }
  2605.  
  2606. static inline __ATTRS_o_ai __vector __bool int
  2607. vec_cmple(__vector unsigned int __a, __vector unsigned int __b) {
  2608.   return (__vector __bool int)(__a <= __b);
  2609. }
  2610.  
  2611. static inline __ATTRS_o_ai __vector __bool long long
  2612. vec_cmple(__vector signed long long __a, __vector signed long long __b) {
  2613.   return (__vector __bool long long)(__a <= __b);
  2614. }
  2615.  
  2616. static inline __ATTRS_o_ai __vector __bool long long
  2617. vec_cmple(__vector unsigned long long __a, __vector unsigned long long __b) {
  2618.   return (__vector __bool long long)(__a <= __b);
  2619. }
  2620.  
  2621. #if __ARCH__ >= 12
  2622. static inline __ATTRS_o_ai __vector __bool int
  2623. vec_cmple(__vector float __a, __vector float __b) {
  2624.   return (__vector __bool int)(__a <= __b);
  2625. }
  2626. #endif
  2627.  
  2628. static inline __ATTRS_o_ai __vector __bool long long
  2629. vec_cmple(__vector double __a, __vector double __b) {
  2630.   return (__vector __bool long long)(__a <= __b);
  2631. }
  2632.  
  2633. /*-- vec_cmplt --------------------------------------------------------------*/
  2634.  
  2635. static inline __ATTRS_o_ai __vector __bool char
  2636. vec_cmplt(__vector signed char __a, __vector signed char __b) {
  2637.   return (__vector __bool char)(__a < __b);
  2638. }
  2639.  
  2640. static inline __ATTRS_o_ai __vector __bool char
  2641. vec_cmplt(__vector unsigned char __a, __vector unsigned char __b) {
  2642.   return (__vector __bool char)(__a < __b);
  2643. }
  2644.  
  2645. static inline __ATTRS_o_ai __vector __bool short
  2646. vec_cmplt(__vector signed short __a, __vector signed short __b) {
  2647.   return (__vector __bool short)(__a < __b);
  2648. }
  2649.  
  2650. static inline __ATTRS_o_ai __vector __bool short
  2651. vec_cmplt(__vector unsigned short __a, __vector unsigned short __b) {
  2652.   return (__vector __bool short)(__a < __b);
  2653. }
  2654.  
  2655. static inline __ATTRS_o_ai __vector __bool int
  2656. vec_cmplt(__vector signed int __a, __vector signed int __b) {
  2657.   return (__vector __bool int)(__a < __b);
  2658. }
  2659.  
  2660. static inline __ATTRS_o_ai __vector __bool int
  2661. vec_cmplt(__vector unsigned int __a, __vector unsigned int __b) {
  2662.   return (__vector __bool int)(__a < __b);
  2663. }
  2664.  
  2665. static inline __ATTRS_o_ai __vector __bool long long
  2666. vec_cmplt(__vector signed long long __a, __vector signed long long __b) {
  2667.   return (__vector __bool long long)(__a < __b);
  2668. }
  2669.  
  2670. static inline __ATTRS_o_ai __vector __bool long long
  2671. vec_cmplt(__vector unsigned long long __a, __vector unsigned long long __b) {
  2672.   return (__vector __bool long long)(__a < __b);
  2673. }
  2674.  
  2675. #if __ARCH__ >= 12
  2676. static inline __ATTRS_o_ai __vector __bool int
  2677. vec_cmplt(__vector float __a, __vector float __b) {
  2678.   return (__vector __bool int)(__a < __b);
  2679. }
  2680. #endif
  2681.  
  2682. static inline __ATTRS_o_ai __vector __bool long long
  2683. vec_cmplt(__vector double __a, __vector double __b) {
  2684.   return (__vector __bool long long)(__a < __b);
  2685. }
  2686.  
  2687. /*-- vec_all_eq -------------------------------------------------------------*/
  2688.  
  2689. static inline __ATTRS_o_ai int
  2690. vec_all_eq(__vector signed char __a, __vector signed char __b) {
  2691.   int __cc;
  2692.   __builtin_s390_vceqbs(__a, __b, &__cc);
  2693.   return __cc == 0;
  2694. }
  2695.  
  2696. // This prototype is deprecated.
  2697. static inline __ATTRS_o_ai int
  2698. vec_all_eq(__vector signed char __a, __vector __bool char __b) {
  2699.   int __cc;
  2700.   __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
  2701.   return __cc == 0;
  2702. }
  2703.  
  2704. // This prototype is deprecated.
  2705. static inline __ATTRS_o_ai int
  2706. vec_all_eq(__vector __bool char __a, __vector signed char __b) {
  2707.   int __cc;
  2708.   __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
  2709.   return __cc == 0;
  2710. }
  2711.  
  2712. static inline __ATTRS_o_ai int
  2713. vec_all_eq(__vector unsigned char __a, __vector unsigned char __b) {
  2714.   int __cc;
  2715.   __builtin_s390_vceqbs((__vector signed char)__a,
  2716.                         (__vector signed char)__b, &__cc);
  2717.   return __cc == 0;
  2718. }
  2719.  
  2720. // This prototype is deprecated.
  2721. static inline __ATTRS_o_ai int
  2722. vec_all_eq(__vector unsigned char __a, __vector __bool char __b) {
  2723.   int __cc;
  2724.   __builtin_s390_vceqbs((__vector signed char)__a,
  2725.                         (__vector signed char)__b, &__cc);
  2726.   return __cc == 0;
  2727. }
  2728.  
  2729. // This prototype is deprecated.
  2730. static inline __ATTRS_o_ai int
  2731. vec_all_eq(__vector __bool char __a, __vector unsigned char __b) {
  2732.   int __cc;
  2733.   __builtin_s390_vceqbs((__vector signed char)__a,
  2734.                         (__vector signed char)__b, &__cc);
  2735.   return __cc == 0;
  2736. }
  2737.  
  2738. static inline __ATTRS_o_ai int
  2739. vec_all_eq(__vector __bool char __a, __vector __bool char __b) {
  2740.   int __cc;
  2741.   __builtin_s390_vceqbs((__vector signed char)__a,
  2742.                         (__vector signed char)__b, &__cc);
  2743.   return __cc == 0;
  2744. }
  2745.  
  2746. static inline __ATTRS_o_ai int
  2747. vec_all_eq(__vector signed short __a, __vector signed short __b) {
  2748.   int __cc;
  2749.   __builtin_s390_vceqhs(__a, __b, &__cc);
  2750.   return __cc == 0;
  2751. }
  2752.  
  2753. // This prototype is deprecated.
  2754. static inline __ATTRS_o_ai int
  2755. vec_all_eq(__vector signed short __a, __vector __bool short __b) {
  2756.   int __cc;
  2757.   __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
  2758.   return __cc == 0;
  2759. }
  2760.  
  2761. // This prototype is deprecated.
  2762. static inline __ATTRS_o_ai int
  2763. vec_all_eq(__vector __bool short __a, __vector signed short __b) {
  2764.   int __cc;
  2765.   __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
  2766.   return __cc == 0;
  2767. }
  2768.  
  2769. static inline __ATTRS_o_ai int
  2770. vec_all_eq(__vector unsigned short __a, __vector unsigned short __b) {
  2771.   int __cc;
  2772.   __builtin_s390_vceqhs((__vector signed short)__a,
  2773.                         (__vector signed short)__b, &__cc);
  2774.   return __cc == 0;
  2775. }
  2776.  
  2777. // This prototype is deprecated.
  2778. static inline __ATTRS_o_ai int
  2779. vec_all_eq(__vector unsigned short __a, __vector __bool short __b) {
  2780.   int __cc;
  2781.   __builtin_s390_vceqhs((__vector signed short)__a,
  2782.                         (__vector signed short)__b, &__cc);
  2783.   return __cc == 0;
  2784. }
  2785.  
  2786. // This prototype is deprecated.
  2787. static inline __ATTRS_o_ai int
  2788. vec_all_eq(__vector __bool short __a, __vector unsigned short __b) {
  2789.   int __cc;
  2790.   __builtin_s390_vceqhs((__vector signed short)__a,
  2791.                         (__vector signed short)__b, &__cc);
  2792.   return __cc == 0;
  2793. }
  2794.  
  2795. static inline __ATTRS_o_ai int
  2796. vec_all_eq(__vector __bool short __a, __vector __bool short __b) {
  2797.   int __cc;
  2798.   __builtin_s390_vceqhs((__vector signed short)__a,
  2799.                         (__vector signed short)__b, &__cc);
  2800.   return __cc == 0;
  2801. }
  2802.  
  2803. static inline __ATTRS_o_ai int
  2804. vec_all_eq(__vector signed int __a, __vector signed int __b) {
  2805.   int __cc;
  2806.   __builtin_s390_vceqfs(__a, __b, &__cc);
  2807.   return __cc == 0;
  2808. }
  2809.  
  2810. // This prototype is deprecated.
  2811. static inline __ATTRS_o_ai int
  2812. vec_all_eq(__vector signed int __a, __vector __bool int __b) {
  2813.   int __cc;
  2814.   __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
  2815.   return __cc == 0;
  2816. }
  2817.  
  2818. // This prototype is deprecated.
  2819. static inline __ATTRS_o_ai int
  2820. vec_all_eq(__vector __bool int __a, __vector signed int __b) {
  2821.   int __cc;
  2822.   __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
  2823.   return __cc == 0;
  2824. }
  2825.  
  2826. static inline __ATTRS_o_ai int
  2827. vec_all_eq(__vector unsigned int __a, __vector unsigned int __b) {
  2828.   int __cc;
  2829.   __builtin_s390_vceqfs((__vector signed int)__a,
  2830.                         (__vector signed int)__b, &__cc);
  2831.   return __cc == 0;
  2832. }
  2833.  
  2834. // This prototype is deprecated.
  2835. static inline __ATTRS_o_ai int
  2836. vec_all_eq(__vector unsigned int __a, __vector __bool int __b) {
  2837.   int __cc;
  2838.   __builtin_s390_vceqfs((__vector signed int)__a,
  2839.                         (__vector signed int)__b, &__cc);
  2840.   return __cc == 0;
  2841. }
  2842.  
  2843. // This prototype is deprecated.
  2844. static inline __ATTRS_o_ai int
  2845. vec_all_eq(__vector __bool int __a, __vector unsigned int __b) {
  2846.   int __cc;
  2847.   __builtin_s390_vceqfs((__vector signed int)__a,
  2848.                         (__vector signed int)__b, &__cc);
  2849.   return __cc == 0;
  2850. }
  2851.  
  2852. static inline __ATTRS_o_ai int
  2853. vec_all_eq(__vector __bool int __a, __vector __bool int __b) {
  2854.   int __cc;
  2855.   __builtin_s390_vceqfs((__vector signed int)__a,
  2856.                         (__vector signed int)__b, &__cc);
  2857.   return __cc == 0;
  2858. }
  2859.  
  2860. static inline __ATTRS_o_ai int
  2861. vec_all_eq(__vector signed long long __a, __vector signed long long __b) {
  2862.   int __cc;
  2863.   __builtin_s390_vceqgs(__a, __b, &__cc);
  2864.   return __cc == 0;
  2865. }
  2866.  
  2867. // This prototype is deprecated.
  2868. static inline __ATTRS_o_ai int
  2869. vec_all_eq(__vector signed long long __a, __vector __bool long long __b) {
  2870.   int __cc;
  2871.   __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
  2872.   return __cc == 0;
  2873. }
  2874.  
  2875. // This prototype is deprecated.
  2876. static inline __ATTRS_o_ai int
  2877. vec_all_eq(__vector __bool long long __a, __vector signed long long __b) {
  2878.   int __cc;
  2879.   __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
  2880.   return __cc == 0;
  2881. }
  2882.  
  2883. static inline __ATTRS_o_ai int
  2884. vec_all_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
  2885.   int __cc;
  2886.   __builtin_s390_vceqgs((__vector signed long long)__a,
  2887.                         (__vector signed long long)__b, &__cc);
  2888.   return __cc == 0;
  2889. }
  2890.  
  2891. // This prototype is deprecated.
  2892. static inline __ATTRS_o_ai int
  2893. vec_all_eq(__vector unsigned long long __a, __vector __bool long long __b) {
  2894.   int __cc;
  2895.   __builtin_s390_vceqgs((__vector signed long long)__a,
  2896.                         (__vector signed long long)__b, &__cc);
  2897.   return __cc == 0;
  2898. }
  2899.  
  2900. // This prototype is deprecated.
  2901. static inline __ATTRS_o_ai int
  2902. vec_all_eq(__vector __bool long long __a, __vector unsigned long long __b) {
  2903.   int __cc;
  2904.   __builtin_s390_vceqgs((__vector signed long long)__a,
  2905.                         (__vector signed long long)__b, &__cc);
  2906.   return __cc == 0;
  2907. }
  2908.  
  2909. static inline __ATTRS_o_ai int
  2910. vec_all_eq(__vector __bool long long __a, __vector __bool long long __b) {
  2911.   int __cc;
  2912.   __builtin_s390_vceqgs((__vector signed long long)__a,
  2913.                         (__vector signed long long)__b, &__cc);
  2914.   return __cc == 0;
  2915. }
  2916.  
  2917. #if __ARCH__ >= 12
  2918. static inline __ATTRS_o_ai int
  2919. vec_all_eq(__vector float __a, __vector float __b) {
  2920.   int __cc;
  2921.   __builtin_s390_vfcesbs(__a, __b, &__cc);
  2922.   return __cc == 0;
  2923. }
  2924. #endif
  2925.  
  2926. static inline __ATTRS_o_ai int
  2927. vec_all_eq(__vector double __a, __vector double __b) {
  2928.   int __cc;
  2929.   __builtin_s390_vfcedbs(__a, __b, &__cc);
  2930.   return __cc == 0;
  2931. }
  2932.  
  2933. /*-- vec_all_ne -------------------------------------------------------------*/
  2934.  
  2935. static inline __ATTRS_o_ai int
  2936. vec_all_ne(__vector signed char __a, __vector signed char __b) {
  2937.   int __cc;
  2938.   __builtin_s390_vceqbs(__a, __b, &__cc);
  2939.   return __cc == 3;
  2940. }
  2941.  
  2942. // This prototype is deprecated.
  2943. static inline __ATTRS_o_ai int
  2944. vec_all_ne(__vector signed char __a, __vector __bool char __b) {
  2945.   int __cc;
  2946.   __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
  2947.   return __cc == 3;
  2948. }
  2949.  
  2950. // This prototype is deprecated.
  2951. static inline __ATTRS_o_ai int
  2952. vec_all_ne(__vector __bool char __a, __vector signed char __b) {
  2953.   int __cc;
  2954.   __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
  2955.   return __cc == 3;
  2956. }
  2957.  
  2958. static inline __ATTRS_o_ai int
  2959. vec_all_ne(__vector unsigned char __a, __vector unsigned char __b) {
  2960.   int __cc;
  2961.   __builtin_s390_vceqbs((__vector signed char)__a,
  2962.                         (__vector signed char)__b, &__cc);
  2963.   return __cc == 3;
  2964. }
  2965.  
  2966. // This prototype is deprecated.
  2967. static inline __ATTRS_o_ai int
  2968. vec_all_ne(__vector unsigned char __a, __vector __bool char __b) {
  2969.   int __cc;
  2970.   __builtin_s390_vceqbs((__vector signed char)__a,
  2971.                         (__vector signed char)__b, &__cc);
  2972.   return __cc == 3;
  2973. }
  2974.  
  2975. // This prototype is deprecated.
  2976. static inline __ATTRS_o_ai int
  2977. vec_all_ne(__vector __bool char __a, __vector unsigned char __b) {
  2978.   int __cc;
  2979.   __builtin_s390_vceqbs((__vector signed char)__a,
  2980.                         (__vector signed char)__b, &__cc);
  2981.   return __cc == 3;
  2982. }
  2983.  
  2984. static inline __ATTRS_o_ai int
  2985. vec_all_ne(__vector __bool char __a, __vector __bool char __b) {
  2986.   int __cc;
  2987.   __builtin_s390_vceqbs((__vector signed char)__a,
  2988.                         (__vector signed char)__b, &__cc);
  2989.   return __cc == 3;
  2990. }
  2991.  
  2992. static inline __ATTRS_o_ai int
  2993. vec_all_ne(__vector signed short __a, __vector signed short __b) {
  2994.   int __cc;
  2995.   __builtin_s390_vceqhs(__a, __b, &__cc);
  2996.   return __cc == 3;
  2997. }
  2998.  
  2999. // This prototype is deprecated.
  3000. static inline __ATTRS_o_ai int
  3001. vec_all_ne(__vector signed short __a, __vector __bool short __b) {
  3002.   int __cc;
  3003.   __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
  3004.   return __cc == 3;
  3005. }
  3006.  
  3007. // This prototype is deprecated.
  3008. static inline __ATTRS_o_ai int
  3009. vec_all_ne(__vector __bool short __a, __vector signed short __b) {
  3010.   int __cc;
  3011.   __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
  3012.   return __cc == 3;
  3013. }
  3014.  
  3015. static inline __ATTRS_o_ai int
  3016. vec_all_ne(__vector unsigned short __a, __vector unsigned short __b) {
  3017.   int __cc;
  3018.   __builtin_s390_vceqhs((__vector signed short)__a,
  3019.                         (__vector signed short)__b, &__cc);
  3020.   return __cc == 3;
  3021. }
  3022.  
  3023. // This prototype is deprecated.
  3024. static inline __ATTRS_o_ai int
  3025. vec_all_ne(__vector unsigned short __a, __vector __bool short __b) {
  3026.   int __cc;
  3027.   __builtin_s390_vceqhs((__vector signed short)__a,
  3028.                         (__vector signed short)__b, &__cc);
  3029.   return __cc == 3;
  3030. }
  3031.  
  3032. // This prototype is deprecated.
  3033. static inline __ATTRS_o_ai int
  3034. vec_all_ne(__vector __bool short __a, __vector unsigned short __b) {
  3035.   int __cc;
  3036.   __builtin_s390_vceqhs((__vector signed short)__a,
  3037.                         (__vector signed short)__b, &__cc);
  3038.   return __cc == 3;
  3039. }
  3040.  
  3041. static inline __ATTRS_o_ai int
  3042. vec_all_ne(__vector __bool short __a, __vector __bool short __b) {
  3043.   int __cc;
  3044.   __builtin_s390_vceqhs((__vector signed short)__a,
  3045.                         (__vector signed short)__b, &__cc);
  3046.   return __cc == 3;
  3047. }
  3048.  
  3049. static inline __ATTRS_o_ai int
  3050. vec_all_ne(__vector signed int __a, __vector signed int __b) {
  3051.   int __cc;
  3052.   __builtin_s390_vceqfs(__a, __b, &__cc);
  3053.   return __cc == 3;
  3054. }
  3055.  
  3056. // This prototype is deprecated.
  3057. static inline __ATTRS_o_ai int
  3058. vec_all_ne(__vector signed int __a, __vector __bool int __b) {
  3059.   int __cc;
  3060.   __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
  3061.   return __cc == 3;
  3062. }
  3063.  
  3064. // This prototype is deprecated.
  3065. static inline __ATTRS_o_ai int
  3066. vec_all_ne(__vector __bool int __a, __vector signed int __b) {
  3067.   int __cc;
  3068.   __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
  3069.   return __cc == 3;
  3070. }
  3071.  
  3072. static inline __ATTRS_o_ai int
  3073. vec_all_ne(__vector unsigned int __a, __vector unsigned int __b) {
  3074.   int __cc;
  3075.   __builtin_s390_vceqfs((__vector signed int)__a,
  3076.                         (__vector signed int)__b, &__cc);
  3077.   return __cc == 3;
  3078. }
  3079.  
  3080. // This prototype is deprecated.
  3081. static inline __ATTRS_o_ai int
  3082. vec_all_ne(__vector unsigned int __a, __vector __bool int __b) {
  3083.   int __cc;
  3084.   __builtin_s390_vceqfs((__vector signed int)__a,
  3085.                         (__vector signed int)__b, &__cc);
  3086.   return __cc == 3;
  3087. }
  3088.  
  3089. // This prototype is deprecated.
  3090. static inline __ATTRS_o_ai int
  3091. vec_all_ne(__vector __bool int __a, __vector unsigned int __b) {
  3092.   int __cc;
  3093.   __builtin_s390_vceqfs((__vector signed int)__a,
  3094.                         (__vector signed int)__b, &__cc);
  3095.   return __cc == 3;
  3096. }
  3097.  
  3098. static inline __ATTRS_o_ai int
  3099. vec_all_ne(__vector __bool int __a, __vector __bool int __b) {
  3100.   int __cc;
  3101.   __builtin_s390_vceqfs((__vector signed int)__a,
  3102.                         (__vector signed int)__b, &__cc);
  3103.   return __cc == 3;
  3104. }
  3105.  
  3106. static inline __ATTRS_o_ai int
  3107. vec_all_ne(__vector signed long long __a, __vector signed long long __b) {
  3108.   int __cc;
  3109.   __builtin_s390_vceqgs(__a, __b, &__cc);
  3110.   return __cc == 3;
  3111. }
  3112.  
  3113. // This prototype is deprecated.
  3114. static inline __ATTRS_o_ai int
  3115. vec_all_ne(__vector signed long long __a, __vector __bool long long __b) {
  3116.   int __cc;
  3117.   __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
  3118.   return __cc == 3;
  3119. }
  3120.  
  3121. // This prototype is deprecated.
  3122. static inline __ATTRS_o_ai int
  3123. vec_all_ne(__vector __bool long long __a, __vector signed long long __b) {
  3124.   int __cc;
  3125.   __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
  3126.   return __cc == 3;
  3127. }
  3128.  
  3129. static inline __ATTRS_o_ai int
  3130. vec_all_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
  3131.   int __cc;
  3132.   __builtin_s390_vceqgs((__vector signed long long)__a,
  3133.                         (__vector signed long long)__b, &__cc);
  3134.   return __cc == 3;
  3135. }
  3136.  
  3137. // This prototype is deprecated.
  3138. static inline __ATTRS_o_ai int
  3139. vec_all_ne(__vector unsigned long long __a, __vector __bool long long __b) {
  3140.   int __cc;
  3141.   __builtin_s390_vceqgs((__vector signed long long)__a,
  3142.                         (__vector signed long long)__b, &__cc);
  3143.   return __cc == 3;
  3144. }
  3145.  
  3146. // This prototype is deprecated.
  3147. static inline __ATTRS_o_ai int
  3148. vec_all_ne(__vector __bool long long __a, __vector unsigned long long __b) {
  3149.   int __cc;
  3150.   __builtin_s390_vceqgs((__vector signed long long)__a,
  3151.                         (__vector signed long long)__b, &__cc);
  3152.   return __cc == 3;
  3153. }
  3154.  
  3155. static inline __ATTRS_o_ai int
  3156. vec_all_ne(__vector __bool long long __a, __vector __bool long long __b) {
  3157.   int __cc;
  3158.   __builtin_s390_vceqgs((__vector signed long long)__a,
  3159.                         (__vector signed long long)__b, &__cc);
  3160.   return __cc == 3;
  3161. }
  3162.  
  3163. #if __ARCH__ >= 12
  3164. static inline __ATTRS_o_ai int
  3165. vec_all_ne(__vector float __a, __vector float __b) {
  3166.   int __cc;
  3167.   __builtin_s390_vfcesbs(__a, __b, &__cc);
  3168.   return __cc == 3;
  3169. }
  3170. #endif
  3171.  
  3172. static inline __ATTRS_o_ai int
  3173. vec_all_ne(__vector double __a, __vector double __b) {
  3174.   int __cc;
  3175.   __builtin_s390_vfcedbs(__a, __b, &__cc);
  3176.   return __cc == 3;
  3177. }
  3178.  
  3179. /*-- vec_all_ge -------------------------------------------------------------*/
  3180.  
  3181. static inline __ATTRS_o_ai int
  3182. vec_all_ge(__vector signed char __a, __vector signed char __b) {
  3183.   int __cc;
  3184.   __builtin_s390_vchbs(__b, __a, &__cc);
  3185.   return __cc == 3;
  3186. }
  3187.  
  3188. // This prototype is deprecated.
  3189. static inline __ATTRS_o_ai int
  3190. vec_all_ge(__vector signed char __a, __vector __bool char __b) {
  3191.   int __cc;
  3192.   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
  3193.   return __cc == 3;
  3194. }
  3195.  
  3196. // This prototype is deprecated.
  3197. static inline __ATTRS_o_ai int
  3198. vec_all_ge(__vector __bool char __a, __vector signed char __b) {
  3199.   int __cc;
  3200.   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
  3201.   return __cc == 3;
  3202. }
  3203.  
  3204. static inline __ATTRS_o_ai int
  3205. vec_all_ge(__vector unsigned char __a, __vector unsigned char __b) {
  3206.   int __cc;
  3207.   __builtin_s390_vchlbs(__b, __a, &__cc);
  3208.   return __cc == 3;
  3209. }
  3210.  
  3211. // This prototype is deprecated.
  3212. static inline __ATTRS_o_ai int
  3213. vec_all_ge(__vector unsigned char __a, __vector __bool char __b) {
  3214.   int __cc;
  3215.   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
  3216.   return __cc == 3;
  3217. }
  3218.  
  3219. // This prototype is deprecated.
  3220. static inline __ATTRS_o_ai int
  3221. vec_all_ge(__vector __bool char __a, __vector unsigned char __b) {
  3222.   int __cc;
  3223.   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
  3224.   return __cc == 3;
  3225. }
  3226.  
  3227. // This prototype is deprecated.
  3228. static inline __ATTRS_o_ai int
  3229. vec_all_ge(__vector __bool char __a, __vector __bool char __b) {
  3230.   int __cc;
  3231.   __builtin_s390_vchlbs((__vector unsigned char)__b,
  3232.                         (__vector unsigned char)__a, &__cc);
  3233.   return __cc == 3;
  3234. }
  3235.  
  3236. static inline __ATTRS_o_ai int
  3237. vec_all_ge(__vector signed short __a, __vector signed short __b) {
  3238.   int __cc;
  3239.   __builtin_s390_vchhs(__b, __a, &__cc);
  3240.   return __cc == 3;
  3241. }
  3242.  
  3243. // This prototype is deprecated.
  3244. static inline __ATTRS_o_ai int
  3245. vec_all_ge(__vector signed short __a, __vector __bool short __b) {
  3246.   int __cc;
  3247.   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
  3248.   return __cc == 3;
  3249. }
  3250.  
  3251. // This prototype is deprecated.
  3252. static inline __ATTRS_o_ai int
  3253. vec_all_ge(__vector __bool short __a, __vector signed short __b) {
  3254.   int __cc;
  3255.   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
  3256.   return __cc == 3;
  3257. }
  3258.  
  3259. static inline __ATTRS_o_ai int
  3260. vec_all_ge(__vector unsigned short __a, __vector unsigned short __b) {
  3261.   int __cc;
  3262.   __builtin_s390_vchlhs(__b, __a, &__cc);
  3263.   return __cc == 3;
  3264. }
  3265.  
  3266. // This prototype is deprecated.
  3267. static inline __ATTRS_o_ai int
  3268. vec_all_ge(__vector unsigned short __a, __vector __bool short __b) {
  3269.   int __cc;
  3270.   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
  3271.   return __cc == 3;
  3272. }
  3273.  
  3274. // This prototype is deprecated.
  3275. static inline __ATTRS_o_ai int
  3276. vec_all_ge(__vector __bool short __a, __vector unsigned short __b) {
  3277.   int __cc;
  3278.   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
  3279.   return __cc == 3;
  3280. }
  3281.  
  3282. // This prototype is deprecated.
  3283. static inline __ATTRS_o_ai int
  3284. vec_all_ge(__vector __bool short __a, __vector __bool short __b) {
  3285.   int __cc;
  3286.   __builtin_s390_vchlhs((__vector unsigned short)__b,
  3287.                         (__vector unsigned short)__a, &__cc);
  3288.   return __cc == 3;
  3289. }
  3290.  
  3291. static inline __ATTRS_o_ai int
  3292. vec_all_ge(__vector signed int __a, __vector signed int __b) {
  3293.   int __cc;
  3294.   __builtin_s390_vchfs(__b, __a, &__cc);
  3295.   return __cc == 3;
  3296. }
  3297.  
  3298. // This prototype is deprecated.
  3299. static inline __ATTRS_o_ai int
  3300. vec_all_ge(__vector signed int __a, __vector __bool int __b) {
  3301.   int __cc;
  3302.   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
  3303.   return __cc == 3;
  3304. }
  3305.  
  3306. // This prototype is deprecated.
  3307. static inline __ATTRS_o_ai int
  3308. vec_all_ge(__vector __bool int __a, __vector signed int __b) {
  3309.   int __cc;
  3310.   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
  3311.   return __cc == 3;
  3312. }
  3313.  
  3314. static inline __ATTRS_o_ai int
  3315. vec_all_ge(__vector unsigned int __a, __vector unsigned int __b) {
  3316.   int __cc;
  3317.   __builtin_s390_vchlfs(__b, __a, &__cc);
  3318.   return __cc == 3;
  3319. }
  3320.  
  3321. // This prototype is deprecated.
  3322. static inline __ATTRS_o_ai int
  3323. vec_all_ge(__vector unsigned int __a, __vector __bool int __b) {
  3324.   int __cc;
  3325.   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
  3326.   return __cc == 3;
  3327. }
  3328.  
  3329. // This prototype is deprecated.
  3330. static inline __ATTRS_o_ai int
  3331. vec_all_ge(__vector __bool int __a, __vector unsigned int __b) {
  3332.   int __cc;
  3333.   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
  3334.   return __cc == 3;
  3335. }
  3336.  
  3337. // This prototype is deprecated.
  3338. static inline __ATTRS_o_ai int
  3339. vec_all_ge(__vector __bool int __a, __vector __bool int __b) {
  3340.   int __cc;
  3341.   __builtin_s390_vchlfs((__vector unsigned int)__b,
  3342.                         (__vector unsigned int)__a, &__cc);
  3343.   return __cc == 3;
  3344. }
  3345.  
  3346. static inline __ATTRS_o_ai int
  3347. vec_all_ge(__vector signed long long __a, __vector signed long long __b) {
  3348.   int __cc;
  3349.   __builtin_s390_vchgs(__b, __a, &__cc);
  3350.   return __cc == 3;
  3351. }
  3352.  
  3353. // This prototype is deprecated.
  3354. static inline __ATTRS_o_ai int
  3355. vec_all_ge(__vector signed long long __a, __vector __bool long long __b) {
  3356.   int __cc;
  3357.   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
  3358.   return __cc == 3;
  3359. }
  3360.  
  3361. // This prototype is deprecated.
  3362. static inline __ATTRS_o_ai int
  3363. vec_all_ge(__vector __bool long long __a, __vector signed long long __b) {
  3364.   int __cc;
  3365.   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
  3366.   return __cc == 3;
  3367. }
  3368.  
  3369. static inline __ATTRS_o_ai int
  3370. vec_all_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
  3371.   int __cc;
  3372.   __builtin_s390_vchlgs(__b, __a, &__cc);
  3373.   return __cc == 3;
  3374. }
  3375.  
  3376. // This prototype is deprecated.
  3377. static inline __ATTRS_o_ai int
  3378. vec_all_ge(__vector unsigned long long __a, __vector __bool long long __b) {
  3379.   int __cc;
  3380.   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
  3381.   return __cc == 3;
  3382. }
  3383.  
  3384. // This prototype is deprecated.
  3385. static inline __ATTRS_o_ai int
  3386. vec_all_ge(__vector __bool long long __a, __vector unsigned long long __b) {
  3387.   int __cc;
  3388.   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
  3389.   return __cc == 3;
  3390. }
  3391.  
  3392. // This prototype is deprecated.
  3393. static inline __ATTRS_o_ai int
  3394. vec_all_ge(__vector __bool long long __a, __vector __bool long long __b) {
  3395.   int __cc;
  3396.   __builtin_s390_vchlgs((__vector unsigned long long)__b,
  3397.                         (__vector unsigned long long)__a, &__cc);
  3398.   return __cc == 3;
  3399. }
  3400.  
  3401. #if __ARCH__ >= 12
  3402. static inline __ATTRS_o_ai int
  3403. vec_all_ge(__vector float __a, __vector float __b) {
  3404.   int __cc;
  3405.   __builtin_s390_vfchesbs(__a, __b, &__cc);
  3406.   return __cc == 0;
  3407. }
  3408. #endif
  3409.  
  3410. static inline __ATTRS_o_ai int
  3411. vec_all_ge(__vector double __a, __vector double __b) {
  3412.   int __cc;
  3413.   __builtin_s390_vfchedbs(__a, __b, &__cc);
  3414.   return __cc == 0;
  3415. }
  3416.  
  3417. /*-- vec_all_gt -------------------------------------------------------------*/
  3418.  
  3419. static inline __ATTRS_o_ai int
  3420. vec_all_gt(__vector signed char __a, __vector signed char __b) {
  3421.   int __cc;
  3422.   __builtin_s390_vchbs(__a, __b, &__cc);
  3423.   return __cc == 0;
  3424. }
  3425.  
  3426. // This prototype is deprecated.
  3427. static inline __ATTRS_o_ai int
  3428. vec_all_gt(__vector signed char __a, __vector __bool char __b) {
  3429.   int __cc;
  3430.   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
  3431.   return __cc == 0;
  3432. }
  3433.  
  3434. // This prototype is deprecated.
  3435. static inline __ATTRS_o_ai int
  3436. vec_all_gt(__vector __bool char __a, __vector signed char __b) {
  3437.   int __cc;
  3438.   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
  3439.   return __cc == 0;
  3440. }
  3441.  
  3442. static inline __ATTRS_o_ai int
  3443. vec_all_gt(__vector unsigned char __a, __vector unsigned char __b) {
  3444.   int __cc;
  3445.   __builtin_s390_vchlbs(__a, __b, &__cc);
  3446.   return __cc == 0;
  3447. }
  3448.  
  3449. // This prototype is deprecated.
  3450. static inline __ATTRS_o_ai int
  3451. vec_all_gt(__vector unsigned char __a, __vector __bool char __b) {
  3452.   int __cc;
  3453.   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
  3454.   return __cc == 0;
  3455. }
  3456.  
  3457. // This prototype is deprecated.
  3458. static inline __ATTRS_o_ai int
  3459. vec_all_gt(__vector __bool char __a, __vector unsigned char __b) {
  3460.   int __cc;
  3461.   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
  3462.   return __cc == 0;
  3463. }
  3464.  
  3465. // This prototype is deprecated.
  3466. static inline __ATTRS_o_ai int
  3467. vec_all_gt(__vector __bool char __a, __vector __bool char __b) {
  3468.   int __cc;
  3469.   __builtin_s390_vchlbs((__vector unsigned char)__a,
  3470.                         (__vector unsigned char)__b, &__cc);
  3471.   return __cc == 0;
  3472. }
  3473.  
  3474. static inline __ATTRS_o_ai int
  3475. vec_all_gt(__vector signed short __a, __vector signed short __b) {
  3476.   int __cc;
  3477.   __builtin_s390_vchhs(__a, __b, &__cc);
  3478.   return __cc == 0;
  3479. }
  3480.  
  3481. // This prototype is deprecated.
  3482. static inline __ATTRS_o_ai int
  3483. vec_all_gt(__vector signed short __a, __vector __bool short __b) {
  3484.   int __cc;
  3485.   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
  3486.   return __cc == 0;
  3487. }
  3488.  
  3489. // This prototype is deprecated.
  3490. static inline __ATTRS_o_ai int
  3491. vec_all_gt(__vector __bool short __a, __vector signed short __b) {
  3492.   int __cc;
  3493.   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
  3494.   return __cc == 0;
  3495. }
  3496.  
  3497. static inline __ATTRS_o_ai int
  3498. vec_all_gt(__vector unsigned short __a, __vector unsigned short __b) {
  3499.   int __cc;
  3500.   __builtin_s390_vchlhs(__a, __b, &__cc);
  3501.   return __cc == 0;
  3502. }
  3503.  
  3504. // This prototype is deprecated.
  3505. static inline __ATTRS_o_ai int
  3506. vec_all_gt(__vector unsigned short __a, __vector __bool short __b) {
  3507.   int __cc;
  3508.   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
  3509.   return __cc == 0;
  3510. }
  3511.  
  3512. // This prototype is deprecated.
  3513. static inline __ATTRS_o_ai int
  3514. vec_all_gt(__vector __bool short __a, __vector unsigned short __b) {
  3515.   int __cc;
  3516.   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
  3517.   return __cc == 0;
  3518. }
  3519.  
  3520. // This prototype is deprecated.
  3521. static inline __ATTRS_o_ai int
  3522. vec_all_gt(__vector __bool short __a, __vector __bool short __b) {
  3523.   int __cc;
  3524.   __builtin_s390_vchlhs((__vector unsigned short)__a,
  3525.                         (__vector unsigned short)__b, &__cc);
  3526.   return __cc == 0;
  3527. }
  3528.  
  3529. static inline __ATTRS_o_ai int
  3530. vec_all_gt(__vector signed int __a, __vector signed int __b) {
  3531.   int __cc;
  3532.   __builtin_s390_vchfs(__a, __b, &__cc);
  3533.   return __cc == 0;
  3534. }
  3535.  
  3536. // This prototype is deprecated.
  3537. static inline __ATTRS_o_ai int
  3538. vec_all_gt(__vector signed int __a, __vector __bool int __b) {
  3539.   int __cc;
  3540.   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
  3541.   return __cc == 0;
  3542. }
  3543.  
  3544. // This prototype is deprecated.
  3545. static inline __ATTRS_o_ai int
  3546. vec_all_gt(__vector __bool int __a, __vector signed int __b) {
  3547.   int __cc;
  3548.   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
  3549.   return __cc == 0;
  3550. }
  3551.  
  3552. static inline __ATTRS_o_ai int
  3553. vec_all_gt(__vector unsigned int __a, __vector unsigned int __b) {
  3554.   int __cc;
  3555.   __builtin_s390_vchlfs(__a, __b, &__cc);
  3556.   return __cc == 0;
  3557. }
  3558.  
  3559. // This prototype is deprecated.
  3560. static inline __ATTRS_o_ai int
  3561. vec_all_gt(__vector unsigned int __a, __vector __bool int __b) {
  3562.   int __cc;
  3563.   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
  3564.   return __cc == 0;
  3565. }
  3566.  
  3567. // This prototype is deprecated.
  3568. static inline __ATTRS_o_ai int
  3569. vec_all_gt(__vector __bool int __a, __vector unsigned int __b) {
  3570.   int __cc;
  3571.   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
  3572.   return __cc == 0;
  3573. }
  3574.  
  3575. // This prototype is deprecated.
  3576. static inline __ATTRS_o_ai int
  3577. vec_all_gt(__vector __bool int __a, __vector __bool int __b) {
  3578.   int __cc;
  3579.   __builtin_s390_vchlfs((__vector unsigned int)__a,
  3580.                         (__vector unsigned int)__b, &__cc);
  3581.   return __cc == 0;
  3582. }
  3583.  
  3584. static inline __ATTRS_o_ai int
  3585. vec_all_gt(__vector signed long long __a, __vector signed long long __b) {
  3586.   int __cc;
  3587.   __builtin_s390_vchgs(__a, __b, &__cc);
  3588.   return __cc == 0;
  3589. }
  3590.  
  3591. // This prototype is deprecated.
  3592. static inline __ATTRS_o_ai int
  3593. vec_all_gt(__vector signed long long __a, __vector __bool long long __b) {
  3594.   int __cc;
  3595.   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
  3596.   return __cc == 0;
  3597. }
  3598.  
  3599. // This prototype is deprecated.
  3600. static inline __ATTRS_o_ai int
  3601. vec_all_gt(__vector __bool long long __a, __vector signed long long __b) {
  3602.   int __cc;
  3603.   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
  3604.   return __cc == 0;
  3605. }
  3606.  
  3607. static inline __ATTRS_o_ai int
  3608. vec_all_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
  3609.   int __cc;
  3610.   __builtin_s390_vchlgs(__a, __b, &__cc);
  3611.   return __cc == 0;
  3612. }
  3613.  
  3614. // This prototype is deprecated.
  3615. static inline __ATTRS_o_ai int
  3616. vec_all_gt(__vector unsigned long long __a, __vector __bool long long __b) {
  3617.   int __cc;
  3618.   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
  3619.   return __cc == 0;
  3620. }
  3621.  
  3622. // This prototype is deprecated.
  3623. static inline __ATTRS_o_ai int
  3624. vec_all_gt(__vector __bool long long __a, __vector unsigned long long __b) {
  3625.   int __cc;
  3626.   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
  3627.   return __cc == 0;
  3628. }
  3629.  
  3630. // This prototype is deprecated.
  3631. static inline __ATTRS_o_ai int
  3632. vec_all_gt(__vector __bool long long __a, __vector __bool long long __b) {
  3633.   int __cc;
  3634.   __builtin_s390_vchlgs((__vector unsigned long long)__a,
  3635.                         (__vector unsigned long long)__b, &__cc);
  3636.   return __cc == 0;
  3637. }
  3638.  
  3639. #if __ARCH__ >= 12
  3640. static inline __ATTRS_o_ai int
  3641. vec_all_gt(__vector float __a, __vector float __b) {
  3642.   int __cc;
  3643.   __builtin_s390_vfchsbs(__a, __b, &__cc);
  3644.   return __cc == 0;
  3645. }
  3646. #endif
  3647.  
  3648. static inline __ATTRS_o_ai int
  3649. vec_all_gt(__vector double __a, __vector double __b) {
  3650.   int __cc;
  3651.   __builtin_s390_vfchdbs(__a, __b, &__cc);
  3652.   return __cc == 0;
  3653. }
  3654.  
  3655. /*-- vec_all_le -------------------------------------------------------------*/
  3656.  
  3657. static inline __ATTRS_o_ai int
  3658. vec_all_le(__vector signed char __a, __vector signed char __b) {
  3659.   int __cc;
  3660.   __builtin_s390_vchbs(__a, __b, &__cc);
  3661.   return __cc == 3;
  3662. }
  3663.  
  3664. // This prototype is deprecated.
  3665. static inline __ATTRS_o_ai int
  3666. vec_all_le(__vector signed char __a, __vector __bool char __b) {
  3667.   int __cc;
  3668.   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
  3669.   return __cc == 3;
  3670. }
  3671.  
  3672. // This prototype is deprecated.
  3673. static inline __ATTRS_o_ai int
  3674. vec_all_le(__vector __bool char __a, __vector signed char __b) {
  3675.   int __cc;
  3676.   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
  3677.   return __cc == 3;
  3678. }
  3679.  
  3680. static inline __ATTRS_o_ai int
  3681. vec_all_le(__vector unsigned char __a, __vector unsigned char __b) {
  3682.   int __cc;
  3683.   __builtin_s390_vchlbs(__a, __b, &__cc);
  3684.   return __cc == 3;
  3685. }
  3686.  
  3687. // This prototype is deprecated.
  3688. static inline __ATTRS_o_ai int
  3689. vec_all_le(__vector unsigned char __a, __vector __bool char __b) {
  3690.   int __cc;
  3691.   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
  3692.   return __cc == 3;
  3693. }
  3694.  
  3695. // This prototype is deprecated.
  3696. static inline __ATTRS_o_ai int
  3697. vec_all_le(__vector __bool char __a, __vector unsigned char __b) {
  3698.   int __cc;
  3699.   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
  3700.   return __cc == 3;
  3701. }
  3702.  
  3703. // This prototype is deprecated.
  3704. static inline __ATTRS_o_ai int
  3705. vec_all_le(__vector __bool char __a, __vector __bool char __b) {
  3706.   int __cc;
  3707.   __builtin_s390_vchlbs((__vector unsigned char)__a,
  3708.                         (__vector unsigned char)__b, &__cc);
  3709.   return __cc == 3;
  3710. }
  3711.  
  3712. static inline __ATTRS_o_ai int
  3713. vec_all_le(__vector signed short __a, __vector signed short __b) {
  3714.   int __cc;
  3715.   __builtin_s390_vchhs(__a, __b, &__cc);
  3716.   return __cc == 3;
  3717. }
  3718.  
  3719. // This prototype is deprecated.
  3720. static inline __ATTRS_o_ai int
  3721. vec_all_le(__vector signed short __a, __vector __bool short __b) {
  3722.   int __cc;
  3723.   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
  3724.   return __cc == 3;
  3725. }
  3726.  
  3727. // This prototype is deprecated.
  3728. static inline __ATTRS_o_ai int
  3729. vec_all_le(__vector __bool short __a, __vector signed short __b) {
  3730.   int __cc;
  3731.   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
  3732.   return __cc == 3;
  3733. }
  3734.  
  3735. static inline __ATTRS_o_ai int
  3736. vec_all_le(__vector unsigned short __a, __vector unsigned short __b) {
  3737.   int __cc;
  3738.   __builtin_s390_vchlhs(__a, __b, &__cc);
  3739.   return __cc == 3;
  3740. }
  3741.  
  3742. // This prototype is deprecated.
  3743. static inline __ATTRS_o_ai int
  3744. vec_all_le(__vector unsigned short __a, __vector __bool short __b) {
  3745.   int __cc;
  3746.   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
  3747.   return __cc == 3;
  3748. }
  3749.  
  3750. // This prototype is deprecated.
  3751. static inline __ATTRS_o_ai int
  3752. vec_all_le(__vector __bool short __a, __vector unsigned short __b) {
  3753.   int __cc;
  3754.   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
  3755.   return __cc == 3;
  3756. }
  3757.  
  3758. // This prototype is deprecated.
  3759. static inline __ATTRS_o_ai int
  3760. vec_all_le(__vector __bool short __a, __vector __bool short __b) {
  3761.   int __cc;
  3762.   __builtin_s390_vchlhs((__vector unsigned short)__a,
  3763.                         (__vector unsigned short)__b, &__cc);
  3764.   return __cc == 3;
  3765. }
  3766.  
  3767. static inline __ATTRS_o_ai int
  3768. vec_all_le(__vector signed int __a, __vector signed int __b) {
  3769.   int __cc;
  3770.   __builtin_s390_vchfs(__a, __b, &__cc);
  3771.   return __cc == 3;
  3772. }
  3773.  
  3774. // This prototype is deprecated.
  3775. static inline __ATTRS_o_ai int
  3776. vec_all_le(__vector signed int __a, __vector __bool int __b) {
  3777.   int __cc;
  3778.   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
  3779.   return __cc == 3;
  3780. }
  3781.  
  3782. // This prototype is deprecated.
  3783. static inline __ATTRS_o_ai int
  3784. vec_all_le(__vector __bool int __a, __vector signed int __b) {
  3785.   int __cc;
  3786.   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
  3787.   return __cc == 3;
  3788. }
  3789.  
  3790. static inline __ATTRS_o_ai int
  3791. vec_all_le(__vector unsigned int __a, __vector unsigned int __b) {
  3792.   int __cc;
  3793.   __builtin_s390_vchlfs(__a, __b, &__cc);
  3794.   return __cc == 3;
  3795. }
  3796.  
  3797. // This prototype is deprecated.
  3798. static inline __ATTRS_o_ai int
  3799. vec_all_le(__vector unsigned int __a, __vector __bool int __b) {
  3800.   int __cc;
  3801.   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
  3802.   return __cc == 3;
  3803. }
  3804.  
  3805. // This prototype is deprecated.
  3806. static inline __ATTRS_o_ai int
  3807. vec_all_le(__vector __bool int __a, __vector unsigned int __b) {
  3808.   int __cc;
  3809.   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
  3810.   return __cc == 3;
  3811. }
  3812.  
  3813. // This prototype is deprecated.
  3814. static inline __ATTRS_o_ai int
  3815. vec_all_le(__vector __bool int __a, __vector __bool int __b) {
  3816.   int __cc;
  3817.   __builtin_s390_vchlfs((__vector unsigned int)__a,
  3818.                         (__vector unsigned int)__b, &__cc);
  3819.   return __cc == 3;
  3820. }
  3821.  
  3822. static inline __ATTRS_o_ai int
  3823. vec_all_le(__vector signed long long __a, __vector signed long long __b) {
  3824.   int __cc;
  3825.   __builtin_s390_vchgs(__a, __b, &__cc);
  3826.   return __cc == 3;
  3827. }
  3828.  
  3829. // This prototype is deprecated.
  3830. static inline __ATTRS_o_ai int
  3831. vec_all_le(__vector signed long long __a, __vector __bool long long __b) {
  3832.   int __cc;
  3833.   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
  3834.   return __cc == 3;
  3835. }
  3836.  
  3837. // This prototype is deprecated.
  3838. static inline __ATTRS_o_ai int
  3839. vec_all_le(__vector __bool long long __a, __vector signed long long __b) {
  3840.   int __cc;
  3841.   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
  3842.   return __cc == 3;
  3843. }
  3844.  
  3845. static inline __ATTRS_o_ai int
  3846. vec_all_le(__vector unsigned long long __a, __vector unsigned long long __b) {
  3847.   int __cc;
  3848.   __builtin_s390_vchlgs(__a, __b, &__cc);
  3849.   return __cc == 3;
  3850. }
  3851.  
  3852. // This prototype is deprecated.
  3853. static inline __ATTRS_o_ai int
  3854. vec_all_le(__vector unsigned long long __a, __vector __bool long long __b) {
  3855.   int __cc;
  3856.   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
  3857.   return __cc == 3;
  3858. }
  3859.  
  3860. // This prototype is deprecated.
  3861. static inline __ATTRS_o_ai int
  3862. vec_all_le(__vector __bool long long __a, __vector unsigned long long __b) {
  3863.   int __cc;
  3864.   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
  3865.   return __cc == 3;
  3866. }
  3867.  
  3868. // This prototype is deprecated.
  3869. static inline __ATTRS_o_ai int
  3870. vec_all_le(__vector __bool long long __a, __vector __bool long long __b) {
  3871.   int __cc;
  3872.   __builtin_s390_vchlgs((__vector unsigned long long)__a,
  3873.                         (__vector unsigned long long)__b, &__cc);
  3874.   return __cc == 3;
  3875. }
  3876.  
  3877. #if __ARCH__ >= 12
  3878. static inline __ATTRS_o_ai int
  3879. vec_all_le(__vector float __a, __vector float __b) {
  3880.   int __cc;
  3881.   __builtin_s390_vfchesbs(__b, __a, &__cc);
  3882.   return __cc == 0;
  3883. }
  3884. #endif
  3885.  
  3886. static inline __ATTRS_o_ai int
  3887. vec_all_le(__vector double __a, __vector double __b) {
  3888.   int __cc;
  3889.   __builtin_s390_vfchedbs(__b, __a, &__cc);
  3890.   return __cc == 0;
  3891. }
  3892.  
  3893. /*-- vec_all_lt -------------------------------------------------------------*/
  3894.  
  3895. static inline __ATTRS_o_ai int
  3896. vec_all_lt(__vector signed char __a, __vector signed char __b) {
  3897.   int __cc;
  3898.   __builtin_s390_vchbs(__b, __a, &__cc);
  3899.   return __cc == 0;
  3900. }
  3901.  
  3902. // This prototype is deprecated.
  3903. static inline __ATTRS_o_ai int
  3904. vec_all_lt(__vector signed char __a, __vector __bool char __b) {
  3905.   int __cc;
  3906.   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
  3907.   return __cc == 0;
  3908. }
  3909.  
  3910. // This prototype is deprecated.
  3911. static inline __ATTRS_o_ai int
  3912. vec_all_lt(__vector __bool char __a, __vector signed char __b) {
  3913.   int __cc;
  3914.   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
  3915.   return __cc == 0;
  3916. }
  3917.  
  3918. static inline __ATTRS_o_ai int
  3919. vec_all_lt(__vector unsigned char __a, __vector unsigned char __b) {
  3920.   int __cc;
  3921.   __builtin_s390_vchlbs(__b, __a, &__cc);
  3922.   return __cc == 0;
  3923. }
  3924.  
  3925. // This prototype is deprecated.
  3926. static inline __ATTRS_o_ai int
  3927. vec_all_lt(__vector unsigned char __a, __vector __bool char __b) {
  3928.   int __cc;
  3929.   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
  3930.   return __cc == 0;
  3931. }
  3932.  
  3933. // This prototype is deprecated.
  3934. static inline __ATTRS_o_ai int
  3935. vec_all_lt(__vector __bool char __a, __vector unsigned char __b) {
  3936.   int __cc;
  3937.   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
  3938.   return __cc == 0;
  3939. }
  3940.  
  3941. // This prototype is deprecated.
  3942. static inline __ATTRS_o_ai int
  3943. vec_all_lt(__vector __bool char __a, __vector __bool char __b) {
  3944.   int __cc;
  3945.   __builtin_s390_vchlbs((__vector unsigned char)__b,
  3946.                         (__vector unsigned char)__a, &__cc);
  3947.   return __cc == 0;
  3948. }
  3949.  
  3950. static inline __ATTRS_o_ai int
  3951. vec_all_lt(__vector signed short __a, __vector signed short __b) {
  3952.   int __cc;
  3953.   __builtin_s390_vchhs(__b, __a, &__cc);
  3954.   return __cc == 0;
  3955. }
  3956.  
  3957. // This prototype is deprecated.
  3958. static inline __ATTRS_o_ai int
  3959. vec_all_lt(__vector signed short __a, __vector __bool short __b) {
  3960.   int __cc;
  3961.   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
  3962.   return __cc == 0;
  3963. }
  3964.  
  3965. // This prototype is deprecated.
  3966. static inline __ATTRS_o_ai int
  3967. vec_all_lt(__vector __bool short __a, __vector signed short __b) {
  3968.   int __cc;
  3969.   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
  3970.   return __cc == 0;
  3971. }
  3972.  
  3973. static inline __ATTRS_o_ai int
  3974. vec_all_lt(__vector unsigned short __a, __vector unsigned short __b) {
  3975.   int __cc;
  3976.   __builtin_s390_vchlhs(__b, __a, &__cc);
  3977.   return __cc == 0;
  3978. }
  3979.  
  3980. // This prototype is deprecated.
  3981. static inline __ATTRS_o_ai int
  3982. vec_all_lt(__vector unsigned short __a, __vector __bool short __b) {
  3983.   int __cc;
  3984.   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
  3985.   return __cc == 0;
  3986. }
  3987.  
  3988. // This prototype is deprecated.
  3989. static inline __ATTRS_o_ai int
  3990. vec_all_lt(__vector __bool short __a, __vector unsigned short __b) {
  3991.   int __cc;
  3992.   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
  3993.   return __cc == 0;
  3994. }
  3995.  
  3996. // This prototype is deprecated.
  3997. static inline __ATTRS_o_ai int
  3998. vec_all_lt(__vector __bool short __a, __vector __bool short __b) {
  3999.   int __cc;
  4000.   __builtin_s390_vchlhs((__vector unsigned short)__b,
  4001.                         (__vector unsigned short)__a, &__cc);
  4002.   return __cc == 0;
  4003. }
  4004.  
  4005. static inline __ATTRS_o_ai int
  4006. vec_all_lt(__vector signed int __a, __vector signed int __b) {
  4007.   int __cc;
  4008.   __builtin_s390_vchfs(__b, __a, &__cc);
  4009.   return __cc == 0;
  4010. }
  4011.  
  4012. // This prototype is deprecated.
  4013. static inline __ATTRS_o_ai int
  4014. vec_all_lt(__vector signed int __a, __vector __bool int __b) {
  4015.   int __cc;
  4016.   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
  4017.   return __cc == 0;
  4018. }
  4019.  
  4020. // This prototype is deprecated.
  4021. static inline __ATTRS_o_ai int
  4022. vec_all_lt(__vector __bool int __a, __vector signed int __b) {
  4023.   int __cc;
  4024.   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
  4025.   return __cc == 0;
  4026. }
  4027.  
  4028. static inline __ATTRS_o_ai int
  4029. vec_all_lt(__vector unsigned int __a, __vector unsigned int __b) {
  4030.   int __cc;
  4031.   __builtin_s390_vchlfs(__b, __a, &__cc);
  4032.   return __cc == 0;
  4033. }
  4034.  
  4035. // This prototype is deprecated.
  4036. static inline __ATTRS_o_ai int
  4037. vec_all_lt(__vector unsigned int __a, __vector __bool int __b) {
  4038.   int __cc;
  4039.   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
  4040.   return __cc == 0;
  4041. }
  4042.  
  4043. // This prototype is deprecated.
  4044. static inline __ATTRS_o_ai int
  4045. vec_all_lt(__vector __bool int __a, __vector unsigned int __b) {
  4046.   int __cc;
  4047.   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
  4048.   return __cc == 0;
  4049. }
  4050.  
  4051. // This prototype is deprecated.
  4052. static inline __ATTRS_o_ai int
  4053. vec_all_lt(__vector __bool int __a, __vector __bool int __b) {
  4054.   int __cc;
  4055.   __builtin_s390_vchlfs((__vector unsigned int)__b,
  4056.                         (__vector unsigned int)__a, &__cc);
  4057.   return __cc == 0;
  4058. }
  4059.  
  4060. static inline __ATTRS_o_ai int
  4061. vec_all_lt(__vector signed long long __a, __vector signed long long __b) {
  4062.   int __cc;
  4063.   __builtin_s390_vchgs(__b, __a, &__cc);
  4064.   return __cc == 0;
  4065. }
  4066.  
  4067. // This prototype is deprecated.
  4068. static inline __ATTRS_o_ai int
  4069. vec_all_lt(__vector signed long long __a, __vector __bool long long __b) {
  4070.   int __cc;
  4071.   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
  4072.   return __cc == 0;
  4073. }
  4074.  
  4075. // This prototype is deprecated.
  4076. static inline __ATTRS_o_ai int
  4077. vec_all_lt(__vector __bool long long __a, __vector signed long long __b) {
  4078.   int __cc;
  4079.   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
  4080.   return __cc == 0;
  4081. }
  4082.  
  4083. static inline __ATTRS_o_ai int
  4084. vec_all_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
  4085.   int __cc;
  4086.   __builtin_s390_vchlgs(__b, __a, &__cc);
  4087.   return __cc == 0;
  4088. }
  4089.  
  4090. // This prototype is deprecated.
  4091. static inline __ATTRS_o_ai int
  4092. vec_all_lt(__vector unsigned long long __a, __vector __bool long long __b) {
  4093.   int __cc;
  4094.   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
  4095.   return __cc == 0;
  4096. }
  4097.  
  4098. // This prototype is deprecated.
  4099. static inline __ATTRS_o_ai int
  4100. vec_all_lt(__vector __bool long long __a, __vector unsigned long long __b) {
  4101.   int __cc;
  4102.   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
  4103.   return __cc == 0;
  4104. }
  4105.  
  4106. // This prototype is deprecated.
  4107. static inline __ATTRS_o_ai int
  4108. vec_all_lt(__vector __bool long long __a, __vector __bool long long __b) {
  4109.   int __cc;
  4110.   __builtin_s390_vchlgs((__vector unsigned long long)__b,
  4111.                         (__vector unsigned long long)__a, &__cc);
  4112.   return __cc == 0;
  4113. }
  4114.  
  4115. #if __ARCH__ >= 12
  4116. static inline __ATTRS_o_ai int
  4117. vec_all_lt(__vector float __a, __vector float __b) {
  4118.   int __cc;
  4119.   __builtin_s390_vfchsbs(__b, __a, &__cc);
  4120.   return __cc == 0;
  4121. }
  4122. #endif
  4123.  
  4124. static inline __ATTRS_o_ai int
  4125. vec_all_lt(__vector double __a, __vector double __b) {
  4126.   int __cc;
  4127.   __builtin_s390_vfchdbs(__b, __a, &__cc);
  4128.   return __cc == 0;
  4129. }
  4130.  
  4131. /*-- vec_all_nge ------------------------------------------------------------*/
  4132.  
  4133. #if __ARCH__ >= 12
  4134. static inline __ATTRS_o_ai int
  4135. vec_all_nge(__vector float __a, __vector float __b) {
  4136.   int __cc;
  4137.   __builtin_s390_vfchesbs(__a, __b, &__cc);
  4138.   return __cc == 3;
  4139. }
  4140. #endif
  4141.  
  4142. static inline __ATTRS_o_ai int
  4143. vec_all_nge(__vector double __a, __vector double __b) {
  4144.   int __cc;
  4145.   __builtin_s390_vfchedbs(__a, __b, &__cc);
  4146.   return __cc == 3;
  4147. }
  4148.  
  4149. /*-- vec_all_ngt ------------------------------------------------------------*/
  4150.  
  4151. #if __ARCH__ >= 12
  4152. static inline __ATTRS_o_ai int
  4153. vec_all_ngt(__vector float __a, __vector float __b) {
  4154.   int __cc;
  4155.   __builtin_s390_vfchsbs(__a, __b, &__cc);
  4156.   return __cc == 3;
  4157. }
  4158. #endif
  4159.  
  4160. static inline __ATTRS_o_ai int
  4161. vec_all_ngt(__vector double __a, __vector double __b) {
  4162.   int __cc;
  4163.   __builtin_s390_vfchdbs(__a, __b, &__cc);
  4164.   return __cc == 3;
  4165. }
  4166.  
  4167. /*-- vec_all_nle ------------------------------------------------------------*/
  4168.  
  4169. #if __ARCH__ >= 12
  4170. static inline __ATTRS_o_ai int
  4171. vec_all_nle(__vector float __a, __vector float __b) {
  4172.   int __cc;
  4173.   __builtin_s390_vfchesbs(__b, __a, &__cc);
  4174.   return __cc == 3;
  4175. }
  4176. #endif
  4177.  
  4178. static inline __ATTRS_o_ai int
  4179. vec_all_nle(__vector double __a, __vector double __b) {
  4180.   int __cc;
  4181.   __builtin_s390_vfchedbs(__b, __a, &__cc);
  4182.   return __cc == 3;
  4183. }
  4184.  
  4185. /*-- vec_all_nlt ------------------------------------------------------------*/
  4186.  
  4187. #if __ARCH__ >= 12
  4188. static inline __ATTRS_o_ai int
  4189. vec_all_nlt(__vector float __a, __vector float __b) {
  4190.   int __cc;
  4191.   __builtin_s390_vfchsbs(__b, __a, &__cc);
  4192.   return __cc == 3;
  4193. }
  4194. #endif
  4195.  
  4196. static inline __ATTRS_o_ai int
  4197. vec_all_nlt(__vector double __a, __vector double __b) {
  4198.   int __cc;
  4199.   __builtin_s390_vfchdbs(__b, __a, &__cc);
  4200.   return __cc == 3;
  4201. }
  4202.  
  4203. /*-- vec_all_nan ------------------------------------------------------------*/
  4204.  
  4205. #if __ARCH__ >= 12
  4206. static inline __ATTRS_o_ai int
  4207. vec_all_nan(__vector float __a) {
  4208.   int __cc;
  4209.   __builtin_s390_vftcisb(__a, 15, &__cc);
  4210.   return __cc == 0;
  4211. }
  4212. #endif
  4213.  
  4214. static inline __ATTRS_o_ai int
  4215. vec_all_nan(__vector double __a) {
  4216.   int __cc;
  4217.   __builtin_s390_vftcidb(__a, 15, &__cc);
  4218.   return __cc == 0;
  4219. }
  4220.  
  4221. /*-- vec_all_numeric --------------------------------------------------------*/
  4222.  
  4223. #if __ARCH__ >= 12
  4224. static inline __ATTRS_o_ai int
  4225. vec_all_numeric(__vector float __a) {
  4226.   int __cc;
  4227.   __builtin_s390_vftcisb(__a, 15, &__cc);
  4228.   return __cc == 3;
  4229. }
  4230. #endif
  4231.  
  4232. static inline __ATTRS_o_ai int
  4233. vec_all_numeric(__vector double __a) {
  4234.   int __cc;
  4235.   __builtin_s390_vftcidb(__a, 15, &__cc);
  4236.   return __cc == 3;
  4237. }
  4238.  
  4239. /*-- vec_any_eq -------------------------------------------------------------*/
  4240.  
  4241. static inline __ATTRS_o_ai int
  4242. vec_any_eq(__vector signed char __a, __vector signed char __b) {
  4243.   int __cc;
  4244.   __builtin_s390_vceqbs(__a, __b, &__cc);
  4245.   return __cc <= 1;
  4246. }
  4247.  
  4248. // This prototype is deprecated.
  4249. static inline __ATTRS_o_ai int
  4250. vec_any_eq(__vector signed char __a, __vector __bool char __b) {
  4251.   int __cc;
  4252.   __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
  4253.   return __cc <= 1;
  4254. }
  4255.  
  4256. // This prototype is deprecated.
  4257. static inline __ATTRS_o_ai int
  4258. vec_any_eq(__vector __bool char __a, __vector signed char __b) {
  4259.   int __cc;
  4260.   __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
  4261.   return __cc <= 1;
  4262. }
  4263.  
  4264. static inline __ATTRS_o_ai int
  4265. vec_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
  4266.   int __cc;
  4267.   __builtin_s390_vceqbs((__vector signed char)__a,
  4268.                         (__vector signed char)__b, &__cc);
  4269.   return __cc <= 1;
  4270. }
  4271.  
  4272. // This prototype is deprecated.
  4273. static inline __ATTRS_o_ai int
  4274. vec_any_eq(__vector unsigned char __a, __vector __bool char __b) {
  4275.   int __cc;
  4276.   __builtin_s390_vceqbs((__vector signed char)__a,
  4277.                         (__vector signed char)__b, &__cc);
  4278.   return __cc <= 1;
  4279. }
  4280.  
  4281. // This prototype is deprecated.
  4282. static inline __ATTRS_o_ai int
  4283. vec_any_eq(__vector __bool char __a, __vector unsigned char __b) {
  4284.   int __cc;
  4285.   __builtin_s390_vceqbs((__vector signed char)__a,
  4286.                         (__vector signed char)__b, &__cc);
  4287.   return __cc <= 1;
  4288. }
  4289.  
  4290. static inline __ATTRS_o_ai int
  4291. vec_any_eq(__vector __bool char __a, __vector __bool char __b) {
  4292.   int __cc;
  4293.   __builtin_s390_vceqbs((__vector signed char)__a,
  4294.                         (__vector signed char)__b, &__cc);
  4295.   return __cc <= 1;
  4296. }
  4297.  
  4298. static inline __ATTRS_o_ai int
  4299. vec_any_eq(__vector signed short __a, __vector signed short __b) {
  4300.   int __cc;
  4301.   __builtin_s390_vceqhs(__a, __b, &__cc);
  4302.   return __cc <= 1;
  4303. }
  4304.  
  4305. // This prototype is deprecated.
  4306. static inline __ATTRS_o_ai int
  4307. vec_any_eq(__vector signed short __a, __vector __bool short __b) {
  4308.   int __cc;
  4309.   __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
  4310.   return __cc <= 1;
  4311. }
  4312.  
  4313. // This prototype is deprecated.
  4314. static inline __ATTRS_o_ai int
  4315. vec_any_eq(__vector __bool short __a, __vector signed short __b) {
  4316.   int __cc;
  4317.   __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
  4318.   return __cc <= 1;
  4319. }
  4320.  
  4321. static inline __ATTRS_o_ai int
  4322. vec_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
  4323.   int __cc;
  4324.   __builtin_s390_vceqhs((__vector signed short)__a,
  4325.                         (__vector signed short)__b, &__cc);
  4326.   return __cc <= 1;
  4327. }
  4328.  
  4329. // This prototype is deprecated.
  4330. static inline __ATTRS_o_ai int
  4331. vec_any_eq(__vector unsigned short __a, __vector __bool short __b) {
  4332.   int __cc;
  4333.   __builtin_s390_vceqhs((__vector signed short)__a,
  4334.                         (__vector signed short)__b, &__cc);
  4335.   return __cc <= 1;
  4336. }
  4337.  
  4338. // This prototype is deprecated.
  4339. static inline __ATTRS_o_ai int
  4340. vec_any_eq(__vector __bool short __a, __vector unsigned short __b) {
  4341.   int __cc;
  4342.   __builtin_s390_vceqhs((__vector signed short)__a,
  4343.                         (__vector signed short)__b, &__cc);
  4344.   return __cc <= 1;
  4345. }
  4346.  
  4347. static inline __ATTRS_o_ai int
  4348. vec_any_eq(__vector __bool short __a, __vector __bool short __b) {
  4349.   int __cc;
  4350.   __builtin_s390_vceqhs((__vector signed short)__a,
  4351.                         (__vector signed short)__b, &__cc);
  4352.   return __cc <= 1;
  4353. }
  4354.  
  4355. static inline __ATTRS_o_ai int
  4356. vec_any_eq(__vector signed int __a, __vector signed int __b) {
  4357.   int __cc;
  4358.   __builtin_s390_vceqfs(__a, __b, &__cc);
  4359.   return __cc <= 1;
  4360. }
  4361.  
  4362. // This prototype is deprecated.
  4363. static inline __ATTRS_o_ai int
  4364. vec_any_eq(__vector signed int __a, __vector __bool int __b) {
  4365.   int __cc;
  4366.   __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
  4367.   return __cc <= 1;
  4368. }
  4369.  
  4370. // This prototype is deprecated.
  4371. static inline __ATTRS_o_ai int
  4372. vec_any_eq(__vector __bool int __a, __vector signed int __b) {
  4373.   int __cc;
  4374.   __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
  4375.   return __cc <= 1;
  4376. }
  4377.  
  4378. static inline __ATTRS_o_ai int
  4379. vec_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
  4380.   int __cc;
  4381.   __builtin_s390_vceqfs((__vector signed int)__a,
  4382.                         (__vector signed int)__b, &__cc);
  4383.   return __cc <= 1;
  4384. }
  4385.  
  4386. // This prototype is deprecated.
  4387. static inline __ATTRS_o_ai int
  4388. vec_any_eq(__vector unsigned int __a, __vector __bool int __b) {
  4389.   int __cc;
  4390.   __builtin_s390_vceqfs((__vector signed int)__a,
  4391.                         (__vector signed int)__b, &__cc);
  4392.   return __cc <= 1;
  4393. }
  4394.  
  4395. // This prototype is deprecated.
  4396. static inline __ATTRS_o_ai int
  4397. vec_any_eq(__vector __bool int __a, __vector unsigned int __b) {
  4398.   int __cc;
  4399.   __builtin_s390_vceqfs((__vector signed int)__a,
  4400.                         (__vector signed int)__b, &__cc);
  4401.   return __cc <= 1;
  4402. }
  4403.  
  4404. static inline __ATTRS_o_ai int
  4405. vec_any_eq(__vector __bool int __a, __vector __bool int __b) {
  4406.   int __cc;
  4407.   __builtin_s390_vceqfs((__vector signed int)__a,
  4408.                         (__vector signed int)__b, &__cc);
  4409.   return __cc <= 1;
  4410. }
  4411.  
  4412. static inline __ATTRS_o_ai int
  4413. vec_any_eq(__vector signed long long __a, __vector signed long long __b) {
  4414.   int __cc;
  4415.   __builtin_s390_vceqgs(__a, __b, &__cc);
  4416.   return __cc <= 1;
  4417. }
  4418.  
  4419. // This prototype is deprecated.
  4420. static inline __ATTRS_o_ai int
  4421. vec_any_eq(__vector signed long long __a, __vector __bool long long __b) {
  4422.   int __cc;
  4423.   __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
  4424.   return __cc <= 1;
  4425. }
  4426.  
  4427. // This prototype is deprecated.
  4428. static inline __ATTRS_o_ai int
  4429. vec_any_eq(__vector __bool long long __a, __vector signed long long __b) {
  4430.   int __cc;
  4431.   __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
  4432.   return __cc <= 1;
  4433. }
  4434.  
  4435. static inline __ATTRS_o_ai int
  4436. vec_any_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
  4437.   int __cc;
  4438.   __builtin_s390_vceqgs((__vector signed long long)__a,
  4439.                         (__vector signed long long)__b, &__cc);
  4440.   return __cc <= 1;
  4441. }
  4442.  
  4443. // This prototype is deprecated.
  4444. static inline __ATTRS_o_ai int
  4445. vec_any_eq(__vector unsigned long long __a, __vector __bool long long __b) {
  4446.   int __cc;
  4447.   __builtin_s390_vceqgs((__vector signed long long)__a,
  4448.                         (__vector signed long long)__b, &__cc);
  4449.   return __cc <= 1;
  4450. }
  4451.  
  4452. // This prototype is deprecated.
  4453. static inline __ATTRS_o_ai int
  4454. vec_any_eq(__vector __bool long long __a, __vector unsigned long long __b) {
  4455.   int __cc;
  4456.   __builtin_s390_vceqgs((__vector signed long long)__a,
  4457.                         (__vector signed long long)__b, &__cc);
  4458.   return __cc <= 1;
  4459. }
  4460.  
  4461. static inline __ATTRS_o_ai int
  4462. vec_any_eq(__vector __bool long long __a, __vector __bool long long __b) {
  4463.   int __cc;
  4464.   __builtin_s390_vceqgs((__vector signed long long)__a,
  4465.                         (__vector signed long long)__b, &__cc);
  4466.   return __cc <= 1;
  4467. }
  4468.  
  4469. #if __ARCH__ >= 12
  4470. static inline __ATTRS_o_ai int
  4471. vec_any_eq(__vector float __a, __vector float __b) {
  4472.   int __cc;
  4473.   __builtin_s390_vfcesbs(__a, __b, &__cc);
  4474.   return __cc <= 1;
  4475. }
  4476. #endif
  4477.  
  4478. static inline __ATTRS_o_ai int
  4479. vec_any_eq(__vector double __a, __vector double __b) {
  4480.   int __cc;
  4481.   __builtin_s390_vfcedbs(__a, __b, &__cc);
  4482.   return __cc <= 1;
  4483. }
  4484.  
  4485. /*-- vec_any_ne -------------------------------------------------------------*/
  4486.  
  4487. static inline __ATTRS_o_ai int
  4488. vec_any_ne(__vector signed char __a, __vector signed char __b) {
  4489.   int __cc;
  4490.   __builtin_s390_vceqbs(__a, __b, &__cc);
  4491.   return __cc != 0;
  4492. }
  4493.  
  4494. // This prototype is deprecated.
  4495. static inline __ATTRS_o_ai int
  4496. vec_any_ne(__vector signed char __a, __vector __bool char __b) {
  4497.   int __cc;
  4498.   __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
  4499.   return __cc != 0;
  4500. }
  4501.  
  4502. // This prototype is deprecated.
  4503. static inline __ATTRS_o_ai int
  4504. vec_any_ne(__vector __bool char __a, __vector signed char __b) {
  4505.   int __cc;
  4506.   __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
  4507.   return __cc != 0;
  4508. }
  4509.  
  4510. static inline __ATTRS_o_ai int
  4511. vec_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
  4512.   int __cc;
  4513.   __builtin_s390_vceqbs((__vector signed char)__a,
  4514.                         (__vector signed char)__b, &__cc);
  4515.   return __cc != 0;
  4516. }
  4517.  
  4518. // This prototype is deprecated.
  4519. static inline __ATTRS_o_ai int
  4520. vec_any_ne(__vector unsigned char __a, __vector __bool char __b) {
  4521.   int __cc;
  4522.   __builtin_s390_vceqbs((__vector signed char)__a,
  4523.                         (__vector signed char)__b, &__cc);
  4524.   return __cc != 0;
  4525. }
  4526.  
  4527. // This prototype is deprecated.
  4528. static inline __ATTRS_o_ai int
  4529. vec_any_ne(__vector __bool char __a, __vector unsigned char __b) {
  4530.   int __cc;
  4531.   __builtin_s390_vceqbs((__vector signed char)__a,
  4532.                         (__vector signed char)__b, &__cc);
  4533.   return __cc != 0;
  4534. }
  4535.  
  4536. static inline __ATTRS_o_ai int
  4537. vec_any_ne(__vector __bool char __a, __vector __bool char __b) {
  4538.   int __cc;
  4539.   __builtin_s390_vceqbs((__vector signed char)__a,
  4540.                         (__vector signed char)__b, &__cc);
  4541.   return __cc != 0;
  4542. }
  4543.  
  4544. static inline __ATTRS_o_ai int
  4545. vec_any_ne(__vector signed short __a, __vector signed short __b) {
  4546.   int __cc;
  4547.   __builtin_s390_vceqhs(__a, __b, &__cc);
  4548.   return __cc != 0;
  4549. }
  4550.  
  4551. // This prototype is deprecated.
  4552. static inline __ATTRS_o_ai int
  4553. vec_any_ne(__vector signed short __a, __vector __bool short __b) {
  4554.   int __cc;
  4555.   __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
  4556.   return __cc != 0;
  4557. }
  4558.  
  4559. // This prototype is deprecated.
  4560. static inline __ATTRS_o_ai int
  4561. vec_any_ne(__vector __bool short __a, __vector signed short __b) {
  4562.   int __cc;
  4563.   __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
  4564.   return __cc != 0;
  4565. }
  4566.  
  4567. static inline __ATTRS_o_ai int
  4568. vec_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
  4569.   int __cc;
  4570.   __builtin_s390_vceqhs((__vector signed short)__a,
  4571.                         (__vector signed short)__b, &__cc);
  4572.   return __cc != 0;
  4573. }
  4574.  
  4575. // This prototype is deprecated.
  4576. static inline __ATTRS_o_ai int
  4577. vec_any_ne(__vector unsigned short __a, __vector __bool short __b) {
  4578.   int __cc;
  4579.   __builtin_s390_vceqhs((__vector signed short)__a,
  4580.                         (__vector signed short)__b, &__cc);
  4581.   return __cc != 0;
  4582. }
  4583.  
  4584. // This prototype is deprecated.
  4585. static inline __ATTRS_o_ai int
  4586. vec_any_ne(__vector __bool short __a, __vector unsigned short __b) {
  4587.   int __cc;
  4588.   __builtin_s390_vceqhs((__vector signed short)__a,
  4589.                         (__vector signed short)__b, &__cc);
  4590.   return __cc != 0;
  4591. }
  4592.  
  4593. static inline __ATTRS_o_ai int
  4594. vec_any_ne(__vector __bool short __a, __vector __bool short __b) {
  4595.   int __cc;
  4596.   __builtin_s390_vceqhs((__vector signed short)__a,
  4597.                         (__vector signed short)__b, &__cc);
  4598.   return __cc != 0;
  4599. }
  4600.  
  4601. static inline __ATTRS_o_ai int
  4602. vec_any_ne(__vector signed int __a, __vector signed int __b) {
  4603.   int __cc;
  4604.   __builtin_s390_vceqfs(__a, __b, &__cc);
  4605.   return __cc != 0;
  4606. }
  4607.  
  4608. // This prototype is deprecated.
  4609. static inline __ATTRS_o_ai int
  4610. vec_any_ne(__vector signed int __a, __vector __bool int __b) {
  4611.   int __cc;
  4612.   __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
  4613.   return __cc != 0;
  4614. }
  4615.  
  4616. // This prototype is deprecated.
  4617. static inline __ATTRS_o_ai int
  4618. vec_any_ne(__vector __bool int __a, __vector signed int __b) {
  4619.   int __cc;
  4620.   __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
  4621.   return __cc != 0;
  4622. }
  4623.  
  4624. static inline __ATTRS_o_ai int
  4625. vec_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
  4626.   int __cc;
  4627.   __builtin_s390_vceqfs((__vector signed int)__a,
  4628.                         (__vector signed int)__b, &__cc);
  4629.   return __cc != 0;
  4630. }
  4631.  
  4632. // This prototype is deprecated.
  4633. static inline __ATTRS_o_ai int
  4634. vec_any_ne(__vector unsigned int __a, __vector __bool int __b) {
  4635.   int __cc;
  4636.   __builtin_s390_vceqfs((__vector signed int)__a,
  4637.                         (__vector signed int)__b, &__cc);
  4638.   return __cc != 0;
  4639. }
  4640.  
  4641. // This prototype is deprecated.
  4642. static inline __ATTRS_o_ai int
  4643. vec_any_ne(__vector __bool int __a, __vector unsigned int __b) {
  4644.   int __cc;
  4645.   __builtin_s390_vceqfs((__vector signed int)__a,
  4646.                         (__vector signed int)__b, &__cc);
  4647.   return __cc != 0;
  4648. }
  4649.  
  4650. static inline __ATTRS_o_ai int
  4651. vec_any_ne(__vector __bool int __a, __vector __bool int __b) {
  4652.   int __cc;
  4653.   __builtin_s390_vceqfs((__vector signed int)__a,
  4654.                         (__vector signed int)__b, &__cc);
  4655.   return __cc != 0;
  4656. }
  4657.  
  4658. static inline __ATTRS_o_ai int
  4659. vec_any_ne(__vector signed long long __a, __vector signed long long __b) {
  4660.   int __cc;
  4661.   __builtin_s390_vceqgs(__a, __b, &__cc);
  4662.   return __cc != 0;
  4663. }
  4664.  
  4665. // This prototype is deprecated.
  4666. static inline __ATTRS_o_ai int
  4667. vec_any_ne(__vector signed long long __a, __vector __bool long long __b) {
  4668.   int __cc;
  4669.   __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
  4670.   return __cc != 0;
  4671. }
  4672.  
  4673. // This prototype is deprecated.
  4674. static inline __ATTRS_o_ai int
  4675. vec_any_ne(__vector __bool long long __a, __vector signed long long __b) {
  4676.   int __cc;
  4677.   __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
  4678.   return __cc != 0;
  4679. }
  4680.  
  4681. static inline __ATTRS_o_ai int
  4682. vec_any_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
  4683.   int __cc;
  4684.   __builtin_s390_vceqgs((__vector signed long long)__a,
  4685.                         (__vector signed long long)__b, &__cc);
  4686.   return __cc != 0;
  4687. }
  4688.  
  4689. // This prototype is deprecated.
  4690. static inline __ATTRS_o_ai int
  4691. vec_any_ne(__vector unsigned long long __a, __vector __bool long long __b) {
  4692.   int __cc;
  4693.   __builtin_s390_vceqgs((__vector signed long long)__a,
  4694.                         (__vector signed long long)__b, &__cc);
  4695.   return __cc != 0;
  4696. }
  4697.  
  4698. // This prototype is deprecated.
  4699. static inline __ATTRS_o_ai int
  4700. vec_any_ne(__vector __bool long long __a, __vector unsigned long long __b) {
  4701.   int __cc;
  4702.   __builtin_s390_vceqgs((__vector signed long long)__a,
  4703.                         (__vector signed long long)__b, &__cc);
  4704.   return __cc != 0;
  4705. }
  4706.  
  4707. static inline __ATTRS_o_ai int
  4708. vec_any_ne(__vector __bool long long __a, __vector __bool long long __b) {
  4709.   int __cc;
  4710.   __builtin_s390_vceqgs((__vector signed long long)__a,
  4711.                         (__vector signed long long)__b, &__cc);
  4712.   return __cc != 0;
  4713. }
  4714.  
  4715. #if __ARCH__ >= 12
  4716. static inline __ATTRS_o_ai int
  4717. vec_any_ne(__vector float __a, __vector float __b) {
  4718.   int __cc;
  4719.   __builtin_s390_vfcesbs(__a, __b, &__cc);
  4720.   return __cc != 0;
  4721. }
  4722. #endif
  4723.  
  4724. static inline __ATTRS_o_ai int
  4725. vec_any_ne(__vector double __a, __vector double __b) {
  4726.   int __cc;
  4727.   __builtin_s390_vfcedbs(__a, __b, &__cc);
  4728.   return __cc != 0;
  4729. }
  4730.  
  4731. /*-- vec_any_ge -------------------------------------------------------------*/
  4732.  
  4733. static inline __ATTRS_o_ai int
  4734. vec_any_ge(__vector signed char __a, __vector signed char __b) {
  4735.   int __cc;
  4736.   __builtin_s390_vchbs(__b, __a, &__cc);
  4737.   return __cc != 0;
  4738. }
  4739.  
  4740. // This prototype is deprecated.
  4741. static inline __ATTRS_o_ai int
  4742. vec_any_ge(__vector signed char __a, __vector __bool char __b) {
  4743.   int __cc;
  4744.   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
  4745.   return __cc != 0;
  4746. }
  4747.  
  4748. // This prototype is deprecated.
  4749. static inline __ATTRS_o_ai int
  4750. vec_any_ge(__vector __bool char __a, __vector signed char __b) {
  4751.   int __cc;
  4752.   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
  4753.   return __cc != 0;
  4754. }
  4755.  
  4756. static inline __ATTRS_o_ai int
  4757. vec_any_ge(__vector unsigned char __a, __vector unsigned char __b) {
  4758.   int __cc;
  4759.   __builtin_s390_vchlbs(__b, __a, &__cc);
  4760.   return __cc != 0;
  4761. }
  4762.  
  4763. // This prototype is deprecated.
  4764. static inline __ATTRS_o_ai int
  4765. vec_any_ge(__vector unsigned char __a, __vector __bool char __b) {
  4766.   int __cc;
  4767.   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
  4768.   return __cc != 0;
  4769. }
  4770.  
  4771. // This prototype is deprecated.
  4772. static inline __ATTRS_o_ai int
  4773. vec_any_ge(__vector __bool char __a, __vector unsigned char __b) {
  4774.   int __cc;
  4775.   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
  4776.   return __cc != 0;
  4777. }
  4778.  
  4779. // This prototype is deprecated.
  4780. static inline __ATTRS_o_ai int
  4781. vec_any_ge(__vector __bool char __a, __vector __bool char __b) {
  4782.   int __cc;
  4783.   __builtin_s390_vchlbs((__vector unsigned char)__b,
  4784.                         (__vector unsigned char)__a, &__cc);
  4785.   return __cc != 0;
  4786. }
  4787.  
  4788. static inline __ATTRS_o_ai int
  4789. vec_any_ge(__vector signed short __a, __vector signed short __b) {
  4790.   int __cc;
  4791.   __builtin_s390_vchhs(__b, __a, &__cc);
  4792.   return __cc != 0;
  4793. }
  4794.  
  4795. // This prototype is deprecated.
  4796. static inline __ATTRS_o_ai int
  4797. vec_any_ge(__vector signed short __a, __vector __bool short __b) {
  4798.   int __cc;
  4799.   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
  4800.   return __cc != 0;
  4801. }
  4802.  
  4803. // This prototype is deprecated.
  4804. static inline __ATTRS_o_ai int
  4805. vec_any_ge(__vector __bool short __a, __vector signed short __b) {
  4806.   int __cc;
  4807.   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
  4808.   return __cc != 0;
  4809. }
  4810.  
  4811. static inline __ATTRS_o_ai int
  4812. vec_any_ge(__vector unsigned short __a, __vector unsigned short __b) {
  4813.   int __cc;
  4814.   __builtin_s390_vchlhs(__b, __a, &__cc);
  4815.   return __cc != 0;
  4816. }
  4817.  
  4818. // This prototype is deprecated.
  4819. static inline __ATTRS_o_ai int
  4820. vec_any_ge(__vector unsigned short __a, __vector __bool short __b) {
  4821.   int __cc;
  4822.   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
  4823.   return __cc != 0;
  4824. }
  4825.  
  4826. // This prototype is deprecated.
  4827. static inline __ATTRS_o_ai int
  4828. vec_any_ge(__vector __bool short __a, __vector unsigned short __b) {
  4829.   int __cc;
  4830.   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
  4831.   return __cc != 0;
  4832. }
  4833.  
  4834. // This prototype is deprecated.
  4835. static inline __ATTRS_o_ai int
  4836. vec_any_ge(__vector __bool short __a, __vector __bool short __b) {
  4837.   int __cc;
  4838.   __builtin_s390_vchlhs((__vector unsigned short)__b,
  4839.                         (__vector unsigned short)__a, &__cc);
  4840.   return __cc != 0;
  4841. }
  4842.  
  4843. static inline __ATTRS_o_ai int
  4844. vec_any_ge(__vector signed int __a, __vector signed int __b) {
  4845.   int __cc;
  4846.   __builtin_s390_vchfs(__b, __a, &__cc);
  4847.   return __cc != 0;
  4848. }
  4849.  
  4850. // This prototype is deprecated.
  4851. static inline __ATTRS_o_ai int
  4852. vec_any_ge(__vector signed int __a, __vector __bool int __b) {
  4853.   int __cc;
  4854.   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
  4855.   return __cc != 0;
  4856. }
  4857.  
  4858. // This prototype is deprecated.
  4859. static inline __ATTRS_o_ai int
  4860. vec_any_ge(__vector __bool int __a, __vector signed int __b) {
  4861.   int __cc;
  4862.   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
  4863.   return __cc != 0;
  4864. }
  4865.  
  4866. static inline __ATTRS_o_ai int
  4867. vec_any_ge(__vector unsigned int __a, __vector unsigned int __b) {
  4868.   int __cc;
  4869.   __builtin_s390_vchlfs(__b, __a, &__cc);
  4870.   return __cc != 0;
  4871. }
  4872.  
  4873. // This prototype is deprecated.
  4874. static inline __ATTRS_o_ai int
  4875. vec_any_ge(__vector unsigned int __a, __vector __bool int __b) {
  4876.   int __cc;
  4877.   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
  4878.   return __cc != 0;
  4879. }
  4880.  
  4881. // This prototype is deprecated.
  4882. static inline __ATTRS_o_ai int
  4883. vec_any_ge(__vector __bool int __a, __vector unsigned int __b) {
  4884.   int __cc;
  4885.   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
  4886.   return __cc != 0;
  4887. }
  4888.  
  4889. // This prototype is deprecated.
  4890. static inline __ATTRS_o_ai int
  4891. vec_any_ge(__vector __bool int __a, __vector __bool int __b) {
  4892.   int __cc;
  4893.   __builtin_s390_vchlfs((__vector unsigned int)__b,
  4894.                         (__vector unsigned int)__a, &__cc);
  4895.   return __cc != 0;
  4896. }
  4897.  
  4898. static inline __ATTRS_o_ai int
  4899. vec_any_ge(__vector signed long long __a, __vector signed long long __b) {
  4900.   int __cc;
  4901.   __builtin_s390_vchgs(__b, __a, &__cc);
  4902.   return __cc != 0;
  4903. }
  4904.  
  4905. // This prototype is deprecated.
  4906. static inline __ATTRS_o_ai int
  4907. vec_any_ge(__vector signed long long __a, __vector __bool long long __b) {
  4908.   int __cc;
  4909.   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
  4910.   return __cc != 0;
  4911. }
  4912.  
  4913. // This prototype is deprecated.
  4914. static inline __ATTRS_o_ai int
  4915. vec_any_ge(__vector __bool long long __a, __vector signed long long __b) {
  4916.   int __cc;
  4917.   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
  4918.   return __cc != 0;
  4919. }
  4920.  
  4921. static inline __ATTRS_o_ai int
  4922. vec_any_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
  4923.   int __cc;
  4924.   __builtin_s390_vchlgs(__b, __a, &__cc);
  4925.   return __cc != 0;
  4926. }
  4927.  
  4928. // This prototype is deprecated.
  4929. static inline __ATTRS_o_ai int
  4930. vec_any_ge(__vector unsigned long long __a, __vector __bool long long __b) {
  4931.   int __cc;
  4932.   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
  4933.   return __cc != 0;
  4934. }
  4935.  
  4936. // This prototype is deprecated.
  4937. static inline __ATTRS_o_ai int
  4938. vec_any_ge(__vector __bool long long __a, __vector unsigned long long __b) {
  4939.   int __cc;
  4940.   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
  4941.   return __cc != 0;
  4942. }
  4943.  
  4944. // This prototype is deprecated.
  4945. static inline __ATTRS_o_ai int
  4946. vec_any_ge(__vector __bool long long __a, __vector __bool long long __b) {
  4947.   int __cc;
  4948.   __builtin_s390_vchlgs((__vector unsigned long long)__b,
  4949.                         (__vector unsigned long long)__a, &__cc);
  4950.   return __cc != 0;
  4951. }
  4952.  
  4953. #if __ARCH__ >= 12
  4954. static inline __ATTRS_o_ai int
  4955. vec_any_ge(__vector float __a, __vector float __b) {
  4956.   int __cc;
  4957.   __builtin_s390_vfchesbs(__a, __b, &__cc);
  4958.   return __cc <= 1;
  4959. }
  4960. #endif
  4961.  
  4962. static inline __ATTRS_o_ai int
  4963. vec_any_ge(__vector double __a, __vector double __b) {
  4964.   int __cc;
  4965.   __builtin_s390_vfchedbs(__a, __b, &__cc);
  4966.   return __cc <= 1;
  4967. }
  4968.  
  4969. /*-- vec_any_gt -------------------------------------------------------------*/
  4970.  
  4971. static inline __ATTRS_o_ai int
  4972. vec_any_gt(__vector signed char __a, __vector signed char __b) {
  4973.   int __cc;
  4974.   __builtin_s390_vchbs(__a, __b, &__cc);
  4975.   return __cc <= 1;
  4976. }
  4977.  
  4978. // This prototype is deprecated.
  4979. static inline __ATTRS_o_ai int
  4980. vec_any_gt(__vector signed char __a, __vector __bool char __b) {
  4981.   int __cc;
  4982.   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
  4983.   return __cc <= 1;
  4984. }
  4985.  
  4986. // This prototype is deprecated.
  4987. static inline __ATTRS_o_ai int
  4988. vec_any_gt(__vector __bool char __a, __vector signed char __b) {
  4989.   int __cc;
  4990.   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
  4991.   return __cc <= 1;
  4992. }
  4993.  
  4994. static inline __ATTRS_o_ai int
  4995. vec_any_gt(__vector unsigned char __a, __vector unsigned char __b) {
  4996.   int __cc;
  4997.   __builtin_s390_vchlbs(__a, __b, &__cc);
  4998.   return __cc <= 1;
  4999. }
  5000.  
  5001. // This prototype is deprecated.
  5002. static inline __ATTRS_o_ai int
  5003. vec_any_gt(__vector unsigned char __a, __vector __bool char __b) {
  5004.   int __cc;
  5005.   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
  5006.   return __cc <= 1;
  5007. }
  5008.  
  5009. // This prototype is deprecated.
  5010. static inline __ATTRS_o_ai int
  5011. vec_any_gt(__vector __bool char __a, __vector unsigned char __b) {
  5012.   int __cc;
  5013.   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
  5014.   return __cc <= 1;
  5015. }
  5016.  
  5017. // This prototype is deprecated.
  5018. static inline __ATTRS_o_ai int
  5019. vec_any_gt(__vector __bool char __a, __vector __bool char __b) {
  5020.   int __cc;
  5021.   __builtin_s390_vchlbs((__vector unsigned char)__a,
  5022.                         (__vector unsigned char)__b, &__cc);
  5023.   return __cc <= 1;
  5024. }
  5025.  
  5026. static inline __ATTRS_o_ai int
  5027. vec_any_gt(__vector signed short __a, __vector signed short __b) {
  5028.   int __cc;
  5029.   __builtin_s390_vchhs(__a, __b, &__cc);
  5030.   return __cc <= 1;
  5031. }
  5032.  
  5033. // This prototype is deprecated.
  5034. static inline __ATTRS_o_ai int
  5035. vec_any_gt(__vector signed short __a, __vector __bool short __b) {
  5036.   int __cc;
  5037.   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
  5038.   return __cc <= 1;
  5039. }
  5040.  
  5041. // This prototype is deprecated.
  5042. static inline __ATTRS_o_ai int
  5043. vec_any_gt(__vector __bool short __a, __vector signed short __b) {
  5044.   int __cc;
  5045.   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
  5046.   return __cc <= 1;
  5047. }
  5048.  
  5049. static inline __ATTRS_o_ai int
  5050. vec_any_gt(__vector unsigned short __a, __vector unsigned short __b) {
  5051.   int __cc;
  5052.   __builtin_s390_vchlhs(__a, __b, &__cc);
  5053.   return __cc <= 1;
  5054. }
  5055.  
  5056. // This prototype is deprecated.
  5057. static inline __ATTRS_o_ai int
  5058. vec_any_gt(__vector unsigned short __a, __vector __bool short __b) {
  5059.   int __cc;
  5060.   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
  5061.   return __cc <= 1;
  5062. }
  5063.  
  5064. // This prototype is deprecated.
  5065. static inline __ATTRS_o_ai int
  5066. vec_any_gt(__vector __bool short __a, __vector unsigned short __b) {
  5067.   int __cc;
  5068.   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
  5069.   return __cc <= 1;
  5070. }
  5071.  
  5072. // This prototype is deprecated.
  5073. static inline __ATTRS_o_ai int
  5074. vec_any_gt(__vector __bool short __a, __vector __bool short __b) {
  5075.   int __cc;
  5076.   __builtin_s390_vchlhs((__vector unsigned short)__a,
  5077.                         (__vector unsigned short)__b, &__cc);
  5078.   return __cc <= 1;
  5079. }
  5080.  
  5081. static inline __ATTRS_o_ai int
  5082. vec_any_gt(__vector signed int __a, __vector signed int __b) {
  5083.   int __cc;
  5084.   __builtin_s390_vchfs(__a, __b, &__cc);
  5085.   return __cc <= 1;
  5086. }
  5087.  
  5088. // This prototype is deprecated.
  5089. static inline __ATTRS_o_ai int
  5090. vec_any_gt(__vector signed int __a, __vector __bool int __b) {
  5091.   int __cc;
  5092.   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
  5093.   return __cc <= 1;
  5094. }
  5095.  
  5096. // This prototype is deprecated.
  5097. static inline __ATTRS_o_ai int
  5098. vec_any_gt(__vector __bool int __a, __vector signed int __b) {
  5099.   int __cc;
  5100.   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
  5101.   return __cc <= 1;
  5102. }
  5103.  
  5104. static inline __ATTRS_o_ai int
  5105. vec_any_gt(__vector unsigned int __a, __vector unsigned int __b) {
  5106.   int __cc;
  5107.   __builtin_s390_vchlfs(__a, __b, &__cc);
  5108.   return __cc <= 1;
  5109. }
  5110.  
  5111. // This prototype is deprecated.
  5112. static inline __ATTRS_o_ai int
  5113. vec_any_gt(__vector unsigned int __a, __vector __bool int __b) {
  5114.   int __cc;
  5115.   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
  5116.   return __cc <= 1;
  5117. }
  5118.  
  5119. // This prototype is deprecated.
  5120. static inline __ATTRS_o_ai int
  5121. vec_any_gt(__vector __bool int __a, __vector unsigned int __b) {
  5122.   int __cc;
  5123.   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
  5124.   return __cc <= 1;
  5125. }
  5126.  
  5127. // This prototype is deprecated.
  5128. static inline __ATTRS_o_ai int
  5129. vec_any_gt(__vector __bool int __a, __vector __bool int __b) {
  5130.   int __cc;
  5131.   __builtin_s390_vchlfs((__vector unsigned int)__a,
  5132.                         (__vector unsigned int)__b, &__cc);
  5133.   return __cc <= 1;
  5134. }
  5135.  
  5136. static inline __ATTRS_o_ai int
  5137. vec_any_gt(__vector signed long long __a, __vector signed long long __b) {
  5138.   int __cc;
  5139.   __builtin_s390_vchgs(__a, __b, &__cc);
  5140.   return __cc <= 1;
  5141. }
  5142.  
  5143. // This prototype is deprecated.
  5144. static inline __ATTRS_o_ai int
  5145. vec_any_gt(__vector signed long long __a, __vector __bool long long __b) {
  5146.   int __cc;
  5147.   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
  5148.   return __cc <= 1;
  5149. }
  5150.  
  5151. // This prototype is deprecated.
  5152. static inline __ATTRS_o_ai int
  5153. vec_any_gt(__vector __bool long long __a, __vector signed long long __b) {
  5154.   int __cc;
  5155.   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
  5156.   return __cc <= 1;
  5157. }
  5158.  
  5159. static inline __ATTRS_o_ai int
  5160. vec_any_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
  5161.   int __cc;
  5162.   __builtin_s390_vchlgs(__a, __b, &__cc);
  5163.   return __cc <= 1;
  5164. }
  5165.  
  5166. // This prototype is deprecated.
  5167. static inline __ATTRS_o_ai int
  5168. vec_any_gt(__vector unsigned long long __a, __vector __bool long long __b) {
  5169.   int __cc;
  5170.   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
  5171.   return __cc <= 1;
  5172. }
  5173.  
  5174. // This prototype is deprecated.
  5175. static inline __ATTRS_o_ai int
  5176. vec_any_gt(__vector __bool long long __a, __vector unsigned long long __b) {
  5177.   int __cc;
  5178.   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
  5179.   return __cc <= 1;
  5180. }
  5181.  
  5182. // This prototype is deprecated.
  5183. static inline __ATTRS_o_ai int
  5184. vec_any_gt(__vector __bool long long __a, __vector __bool long long __b) {
  5185.   int __cc;
  5186.   __builtin_s390_vchlgs((__vector unsigned long long)__a,
  5187.                         (__vector unsigned long long)__b, &__cc);
  5188.   return __cc <= 1;
  5189. }
  5190.  
  5191. #if __ARCH__ >= 12
  5192. static inline __ATTRS_o_ai int
  5193. vec_any_gt(__vector float __a, __vector float __b) {
  5194.   int __cc;
  5195.   __builtin_s390_vfchsbs(__a, __b, &__cc);
  5196.   return __cc <= 1;
  5197. }
  5198. #endif
  5199.  
  5200. static inline __ATTRS_o_ai int
  5201. vec_any_gt(__vector double __a, __vector double __b) {
  5202.   int __cc;
  5203.   __builtin_s390_vfchdbs(__a, __b, &__cc);
  5204.   return __cc <= 1;
  5205. }
  5206.  
  5207. /*-- vec_any_le -------------------------------------------------------------*/
  5208.  
  5209. static inline __ATTRS_o_ai int
  5210. vec_any_le(__vector signed char __a, __vector signed char __b) {
  5211.   int __cc;
  5212.   __builtin_s390_vchbs(__a, __b, &__cc);
  5213.   return __cc != 0;
  5214. }
  5215.  
  5216. // This prototype is deprecated.
  5217. static inline __ATTRS_o_ai int
  5218. vec_any_le(__vector signed char __a, __vector __bool char __b) {
  5219.   int __cc;
  5220.   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
  5221.   return __cc != 0;
  5222. }
  5223.  
  5224. // This prototype is deprecated.
  5225. static inline __ATTRS_o_ai int
  5226. vec_any_le(__vector __bool char __a, __vector signed char __b) {
  5227.   int __cc;
  5228.   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
  5229.   return __cc != 0;
  5230. }
  5231.  
  5232. static inline __ATTRS_o_ai int
  5233. vec_any_le(__vector unsigned char __a, __vector unsigned char __b) {
  5234.   int __cc;
  5235.   __builtin_s390_vchlbs(__a, __b, &__cc);
  5236.   return __cc != 0;
  5237. }
  5238.  
  5239. // This prototype is deprecated.
  5240. static inline __ATTRS_o_ai int
  5241. vec_any_le(__vector unsigned char __a, __vector __bool char __b) {
  5242.   int __cc;
  5243.   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
  5244.   return __cc != 0;
  5245. }
  5246.  
  5247. // This prototype is deprecated.
  5248. static inline __ATTRS_o_ai int
  5249. vec_any_le(__vector __bool char __a, __vector unsigned char __b) {
  5250.   int __cc;
  5251.   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
  5252.   return __cc != 0;
  5253. }
  5254.  
  5255. // This prototype is deprecated.
  5256. static inline __ATTRS_o_ai int
  5257. vec_any_le(__vector __bool char __a, __vector __bool char __b) {
  5258.   int __cc;
  5259.   __builtin_s390_vchlbs((__vector unsigned char)__a,
  5260.                         (__vector unsigned char)__b, &__cc);
  5261.   return __cc != 0;
  5262. }
  5263.  
  5264. static inline __ATTRS_o_ai int
  5265. vec_any_le(__vector signed short __a, __vector signed short __b) {
  5266.   int __cc;
  5267.   __builtin_s390_vchhs(__a, __b, &__cc);
  5268.   return __cc != 0;
  5269. }
  5270.  
  5271. // This prototype is deprecated.
  5272. static inline __ATTRS_o_ai int
  5273. vec_any_le(__vector signed short __a, __vector __bool short __b) {
  5274.   int __cc;
  5275.   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
  5276.   return __cc != 0;
  5277. }
  5278.  
  5279. // This prototype is deprecated.
  5280. static inline __ATTRS_o_ai int
  5281. vec_any_le(__vector __bool short __a, __vector signed short __b) {
  5282.   int __cc;
  5283.   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
  5284.   return __cc != 0;
  5285. }
  5286.  
  5287. static inline __ATTRS_o_ai int
  5288. vec_any_le(__vector unsigned short __a, __vector unsigned short __b) {
  5289.   int __cc;
  5290.   __builtin_s390_vchlhs(__a, __b, &__cc);
  5291.   return __cc != 0;
  5292. }
  5293.  
  5294. // This prototype is deprecated.
  5295. static inline __ATTRS_o_ai int
  5296. vec_any_le(__vector unsigned short __a, __vector __bool short __b) {
  5297.   int __cc;
  5298.   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
  5299.   return __cc != 0;
  5300. }
  5301.  
  5302. // This prototype is deprecated.
  5303. static inline __ATTRS_o_ai int
  5304. vec_any_le(__vector __bool short __a, __vector unsigned short __b) {
  5305.   int __cc;
  5306.   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
  5307.   return __cc != 0;
  5308. }
  5309.  
  5310. // This prototype is deprecated.
  5311. static inline __ATTRS_o_ai int
  5312. vec_any_le(__vector __bool short __a, __vector __bool short __b) {
  5313.   int __cc;
  5314.   __builtin_s390_vchlhs((__vector unsigned short)__a,
  5315.                         (__vector unsigned short)__b, &__cc);
  5316.   return __cc != 0;
  5317. }
  5318.  
  5319. static inline __ATTRS_o_ai int
  5320. vec_any_le(__vector signed int __a, __vector signed int __b) {
  5321.   int __cc;
  5322.   __builtin_s390_vchfs(__a, __b, &__cc);
  5323.   return __cc != 0;
  5324. }
  5325.  
  5326. // This prototype is deprecated.
  5327. static inline __ATTRS_o_ai int
  5328. vec_any_le(__vector signed int __a, __vector __bool int __b) {
  5329.   int __cc;
  5330.   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
  5331.   return __cc != 0;
  5332. }
  5333.  
  5334. // This prototype is deprecated.
  5335. static inline __ATTRS_o_ai int
  5336. vec_any_le(__vector __bool int __a, __vector signed int __b) {
  5337.   int __cc;
  5338.   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
  5339.   return __cc != 0;
  5340. }
  5341.  
  5342. static inline __ATTRS_o_ai int
  5343. vec_any_le(__vector unsigned int __a, __vector unsigned int __b) {
  5344.   int __cc;
  5345.   __builtin_s390_vchlfs(__a, __b, &__cc);
  5346.   return __cc != 0;
  5347. }
  5348.  
  5349. // This prototype is deprecated.
  5350. static inline __ATTRS_o_ai int
  5351. vec_any_le(__vector unsigned int __a, __vector __bool int __b) {
  5352.   int __cc;
  5353.   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
  5354.   return __cc != 0;
  5355. }
  5356.  
  5357. // This prototype is deprecated.
  5358. static inline __ATTRS_o_ai int
  5359. vec_any_le(__vector __bool int __a, __vector unsigned int __b) {
  5360.   int __cc;
  5361.   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
  5362.   return __cc != 0;
  5363. }
  5364.  
  5365. // This prototype is deprecated.
  5366. static inline __ATTRS_o_ai int
  5367. vec_any_le(__vector __bool int __a, __vector __bool int __b) {
  5368.   int __cc;
  5369.   __builtin_s390_vchlfs((__vector unsigned int)__a,
  5370.                         (__vector unsigned int)__b, &__cc);
  5371.   return __cc != 0;
  5372. }
  5373.  
  5374. static inline __ATTRS_o_ai int
  5375. vec_any_le(__vector signed long long __a, __vector signed long long __b) {
  5376.   int __cc;
  5377.   __builtin_s390_vchgs(__a, __b, &__cc);
  5378.   return __cc != 0;
  5379. }
  5380.  
  5381. // This prototype is deprecated.
  5382. static inline __ATTRS_o_ai int
  5383. vec_any_le(__vector signed long long __a, __vector __bool long long __b) {
  5384.   int __cc;
  5385.   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
  5386.   return __cc != 0;
  5387. }
  5388.  
  5389. // This prototype is deprecated.
  5390. static inline __ATTRS_o_ai int
  5391. vec_any_le(__vector __bool long long __a, __vector signed long long __b) {
  5392.   int __cc;
  5393.   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
  5394.   return __cc != 0;
  5395. }
  5396.  
  5397. static inline __ATTRS_o_ai int
  5398. vec_any_le(__vector unsigned long long __a, __vector unsigned long long __b) {
  5399.   int __cc;
  5400.   __builtin_s390_vchlgs(__a, __b, &__cc);
  5401.   return __cc != 0;
  5402. }
  5403.  
  5404. // This prototype is deprecated.
  5405. static inline __ATTRS_o_ai int
  5406. vec_any_le(__vector unsigned long long __a, __vector __bool long long __b) {
  5407.   int __cc;
  5408.   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
  5409.   return __cc != 0;
  5410. }
  5411.  
  5412. // This prototype is deprecated.
  5413. static inline __ATTRS_o_ai int
  5414. vec_any_le(__vector __bool long long __a, __vector unsigned long long __b) {
  5415.   int __cc;
  5416.   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
  5417.   return __cc != 0;
  5418. }
  5419.  
  5420. // This prototype is deprecated.
  5421. static inline __ATTRS_o_ai int
  5422. vec_any_le(__vector __bool long long __a, __vector __bool long long __b) {
  5423.   int __cc;
  5424.   __builtin_s390_vchlgs((__vector unsigned long long)__a,
  5425.                         (__vector unsigned long long)__b, &__cc);
  5426.   return __cc != 0;
  5427. }
  5428.  
  5429. #if __ARCH__ >= 12
  5430. static inline __ATTRS_o_ai int
  5431. vec_any_le(__vector float __a, __vector float __b) {
  5432.   int __cc;
  5433.   __builtin_s390_vfchesbs(__b, __a, &__cc);
  5434.   return __cc <= 1;
  5435. }
  5436. #endif
  5437.  
  5438. static inline __ATTRS_o_ai int
  5439. vec_any_le(__vector double __a, __vector double __b) {
  5440.   int __cc;
  5441.   __builtin_s390_vfchedbs(__b, __a, &__cc);
  5442.   return __cc <= 1;
  5443. }
  5444.  
  5445. /*-- vec_any_lt -------------------------------------------------------------*/
  5446.  
  5447. static inline __ATTRS_o_ai int
  5448. vec_any_lt(__vector signed char __a, __vector signed char __b) {
  5449.   int __cc;
  5450.   __builtin_s390_vchbs(__b, __a, &__cc);
  5451.   return __cc <= 1;
  5452. }
  5453.  
  5454. // This prototype is deprecated.
  5455. static inline __ATTRS_o_ai int
  5456. vec_any_lt(__vector signed char __a, __vector __bool char __b) {
  5457.   int __cc;
  5458.   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
  5459.   return __cc <= 1;
  5460. }
  5461.  
  5462. // This prototype is deprecated.
  5463. static inline __ATTRS_o_ai int
  5464. vec_any_lt(__vector __bool char __a, __vector signed char __b) {
  5465.   int __cc;
  5466.   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
  5467.   return __cc <= 1;
  5468. }
  5469.  
  5470. static inline __ATTRS_o_ai int
  5471. vec_any_lt(__vector unsigned char __a, __vector unsigned char __b) {
  5472.   int __cc;
  5473.   __builtin_s390_vchlbs(__b, __a, &__cc);
  5474.   return __cc <= 1;
  5475. }
  5476.  
  5477. // This prototype is deprecated.
  5478. static inline __ATTRS_o_ai int
  5479. vec_any_lt(__vector unsigned char __a, __vector __bool char __b) {
  5480.   int __cc;
  5481.   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
  5482.   return __cc <= 1;
  5483. }
  5484.  
  5485. // This prototype is deprecated.
  5486. static inline __ATTRS_o_ai int
  5487. vec_any_lt(__vector __bool char __a, __vector unsigned char __b) {
  5488.   int __cc;
  5489.   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
  5490.   return __cc <= 1;
  5491. }
  5492.  
  5493. // This prototype is deprecated.
  5494. static inline __ATTRS_o_ai int
  5495. vec_any_lt(__vector __bool char __a, __vector __bool char __b) {
  5496.   int __cc;
  5497.   __builtin_s390_vchlbs((__vector unsigned char)__b,
  5498.                         (__vector unsigned char)__a, &__cc);
  5499.   return __cc <= 1;
  5500. }
  5501.  
  5502. static inline __ATTRS_o_ai int
  5503. vec_any_lt(__vector signed short __a, __vector signed short __b) {
  5504.   int __cc;
  5505.   __builtin_s390_vchhs(__b, __a, &__cc);
  5506.   return __cc <= 1;
  5507. }
  5508.  
  5509. // This prototype is deprecated.
  5510. static inline __ATTRS_o_ai int
  5511. vec_any_lt(__vector signed short __a, __vector __bool short __b) {
  5512.   int __cc;
  5513.   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
  5514.   return __cc <= 1;
  5515. }
  5516.  
  5517. // This prototype is deprecated.
  5518. static inline __ATTRS_o_ai int
  5519. vec_any_lt(__vector __bool short __a, __vector signed short __b) {
  5520.   int __cc;
  5521.   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
  5522.   return __cc <= 1;
  5523. }
  5524.  
  5525. static inline __ATTRS_o_ai int
  5526. vec_any_lt(__vector unsigned short __a, __vector unsigned short __b) {
  5527.   int __cc;
  5528.   __builtin_s390_vchlhs(__b, __a, &__cc);
  5529.   return __cc <= 1;
  5530. }
  5531.  
  5532. // This prototype is deprecated.
  5533. static inline __ATTRS_o_ai int
  5534. vec_any_lt(__vector unsigned short __a, __vector __bool short __b) {
  5535.   int __cc;
  5536.   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
  5537.   return __cc <= 1;
  5538. }
  5539.  
  5540. // This prototype is deprecated.
  5541. static inline __ATTRS_o_ai int
  5542. vec_any_lt(__vector __bool short __a, __vector unsigned short __b) {
  5543.   int __cc;
  5544.   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
  5545.   return __cc <= 1;
  5546. }
  5547.  
  5548. // This prototype is deprecated.
  5549. static inline __ATTRS_o_ai int
  5550. vec_any_lt(__vector __bool short __a, __vector __bool short __b) {
  5551.   int __cc;
  5552.   __builtin_s390_vchlhs((__vector unsigned short)__b,
  5553.                         (__vector unsigned short)__a, &__cc);
  5554.   return __cc <= 1;
  5555. }
  5556.  
  5557. static inline __ATTRS_o_ai int
  5558. vec_any_lt(__vector signed int __a, __vector signed int __b) {
  5559.   int __cc;
  5560.   __builtin_s390_vchfs(__b, __a, &__cc);
  5561.   return __cc <= 1;
  5562. }
  5563.  
  5564. // This prototype is deprecated.
  5565. static inline __ATTRS_o_ai int
  5566. vec_any_lt(__vector signed int __a, __vector __bool int __b) {
  5567.   int __cc;
  5568.   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
  5569.   return __cc <= 1;
  5570. }
  5571.  
  5572. // This prototype is deprecated.
  5573. static inline __ATTRS_o_ai int
  5574. vec_any_lt(__vector __bool int __a, __vector signed int __b) {
  5575.   int __cc;
  5576.   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
  5577.   return __cc <= 1;
  5578. }
  5579.  
  5580. static inline __ATTRS_o_ai int
  5581. vec_any_lt(__vector unsigned int __a, __vector unsigned int __b) {
  5582.   int __cc;
  5583.   __builtin_s390_vchlfs(__b, __a, &__cc);
  5584.   return __cc <= 1;
  5585. }
  5586.  
  5587. // This prototype is deprecated.
  5588. static inline __ATTRS_o_ai int
  5589. vec_any_lt(__vector unsigned int __a, __vector __bool int __b) {
  5590.   int __cc;
  5591.   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
  5592.   return __cc <= 1;
  5593. }
  5594.  
  5595. // This prototype is deprecated.
  5596. static inline __ATTRS_o_ai int
  5597. vec_any_lt(__vector __bool int __a, __vector unsigned int __b) {
  5598.   int __cc;
  5599.   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
  5600.   return __cc <= 1;
  5601. }
  5602.  
  5603. // This prototype is deprecated.
  5604. static inline __ATTRS_o_ai int
  5605. vec_any_lt(__vector __bool int __a, __vector __bool int __b) {
  5606.   int __cc;
  5607.   __builtin_s390_vchlfs((__vector unsigned int)__b,
  5608.                         (__vector unsigned int)__a, &__cc);
  5609.   return __cc <= 1;
  5610. }
  5611.  
  5612. static inline __ATTRS_o_ai int
  5613. vec_any_lt(__vector signed long long __a, __vector signed long long __b) {
  5614.   int __cc;
  5615.   __builtin_s390_vchgs(__b, __a, &__cc);
  5616.   return __cc <= 1;
  5617. }
  5618.  
  5619. // This prototype is deprecated.
  5620. static inline __ATTRS_o_ai int
  5621. vec_any_lt(__vector signed long long __a, __vector __bool long long __b) {
  5622.   int __cc;
  5623.   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
  5624.   return __cc <= 1;
  5625. }
  5626.  
  5627. // This prototype is deprecated.
  5628. static inline __ATTRS_o_ai int
  5629. vec_any_lt(__vector __bool long long __a, __vector signed long long __b) {
  5630.   int __cc;
  5631.   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
  5632.   return __cc <= 1;
  5633. }
  5634.  
  5635. static inline __ATTRS_o_ai int
  5636. vec_any_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
  5637.   int __cc;
  5638.   __builtin_s390_vchlgs(__b, __a, &__cc);
  5639.   return __cc <= 1;
  5640. }
  5641.  
  5642. // This prototype is deprecated.
  5643. static inline __ATTRS_o_ai int
  5644. vec_any_lt(__vector unsigned long long __a, __vector __bool long long __b) {
  5645.   int __cc;
  5646.   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
  5647.   return __cc <= 1;
  5648. }
  5649.  
  5650. // This prototype is deprecated.
  5651. static inline __ATTRS_o_ai int
  5652. vec_any_lt(__vector __bool long long __a, __vector unsigned long long __b) {
  5653.   int __cc;
  5654.   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
  5655.   return __cc <= 1;
  5656. }
  5657.  
  5658. // This prototype is deprecated.
  5659. static inline __ATTRS_o_ai int
  5660. vec_any_lt(__vector __bool long long __a, __vector __bool long long __b) {
  5661.   int __cc;
  5662.   __builtin_s390_vchlgs((__vector unsigned long long)__b,
  5663.                         (__vector unsigned long long)__a, &__cc);
  5664.   return __cc <= 1;
  5665. }
  5666.  
  5667. #if __ARCH__ >= 12
  5668. static inline __ATTRS_o_ai int
  5669. vec_any_lt(__vector float __a, __vector float __b) {
  5670.   int __cc;
  5671.   __builtin_s390_vfchsbs(__b, __a, &__cc);
  5672.   return __cc <= 1;
  5673. }
  5674. #endif
  5675.  
  5676. static inline __ATTRS_o_ai int
  5677. vec_any_lt(__vector double __a, __vector double __b) {
  5678.   int __cc;
  5679.   __builtin_s390_vfchdbs(__b, __a, &__cc);
  5680.   return __cc <= 1;
  5681. }
  5682.  
  5683. /*-- vec_any_nge ------------------------------------------------------------*/
  5684.  
  5685. #if __ARCH__ >= 12
  5686. static inline __ATTRS_o_ai int
  5687. vec_any_nge(__vector float __a, __vector float __b) {
  5688.   int __cc;
  5689.   __builtin_s390_vfchesbs(__a, __b, &__cc);
  5690.   return __cc != 0;
  5691. }
  5692. #endif
  5693.  
  5694. static inline __ATTRS_o_ai int
  5695. vec_any_nge(__vector double __a, __vector double __b) {
  5696.   int __cc;
  5697.   __builtin_s390_vfchedbs(__a, __b, &__cc);
  5698.   return __cc != 0;
  5699. }
  5700.  
  5701. /*-- vec_any_ngt ------------------------------------------------------------*/
  5702.  
  5703. #if __ARCH__ >= 12
  5704. static inline __ATTRS_o_ai int
  5705. vec_any_ngt(__vector float __a, __vector float __b) {
  5706.   int __cc;
  5707.   __builtin_s390_vfchsbs(__a, __b, &__cc);
  5708.   return __cc != 0;
  5709. }
  5710. #endif
  5711.  
  5712. static inline __ATTRS_o_ai int
  5713. vec_any_ngt(__vector double __a, __vector double __b) {
  5714.   int __cc;
  5715.   __builtin_s390_vfchdbs(__a, __b, &__cc);
  5716.   return __cc != 0;
  5717. }
  5718.  
  5719. /*-- vec_any_nle ------------------------------------------------------------*/
  5720.  
  5721. #if __ARCH__ >= 12
  5722. static inline __ATTRS_o_ai int
  5723. vec_any_nle(__vector float __a, __vector float __b) {
  5724.   int __cc;
  5725.   __builtin_s390_vfchesbs(__b, __a, &__cc);
  5726.   return __cc != 0;
  5727. }
  5728. #endif
  5729.  
  5730. static inline __ATTRS_o_ai int
  5731. vec_any_nle(__vector double __a, __vector double __b) {
  5732.   int __cc;
  5733.   __builtin_s390_vfchedbs(__b, __a, &__cc);
  5734.   return __cc != 0;
  5735. }
  5736.  
  5737. /*-- vec_any_nlt ------------------------------------------------------------*/
  5738.  
  5739. #if __ARCH__ >= 12
  5740. static inline __ATTRS_o_ai int
  5741. vec_any_nlt(__vector float __a, __vector float __b) {
  5742.   int __cc;
  5743.   __builtin_s390_vfchsbs(__b, __a, &__cc);
  5744.   return __cc != 0;
  5745. }
  5746. #endif
  5747.  
  5748. static inline __ATTRS_o_ai int
  5749. vec_any_nlt(__vector double __a, __vector double __b) {
  5750.   int __cc;
  5751.   __builtin_s390_vfchdbs(__b, __a, &__cc);
  5752.   return __cc != 0;
  5753. }
  5754.  
  5755. /*-- vec_any_nan ------------------------------------------------------------*/
  5756.  
  5757. #if __ARCH__ >= 12
  5758. static inline __ATTRS_o_ai int
  5759. vec_any_nan(__vector float __a) {
  5760.   int __cc;
  5761.   __builtin_s390_vftcisb(__a, 15, &__cc);
  5762.   return __cc != 3;
  5763. }
  5764. #endif
  5765.  
  5766. static inline __ATTRS_o_ai int
  5767. vec_any_nan(__vector double __a) {
  5768.   int __cc;
  5769.   __builtin_s390_vftcidb(__a, 15, &__cc);
  5770.   return __cc != 3;
  5771. }
  5772.  
  5773. /*-- vec_any_numeric --------------------------------------------------------*/
  5774.  
  5775. #if __ARCH__ >= 12
  5776. static inline __ATTRS_o_ai int
  5777. vec_any_numeric(__vector float __a) {
  5778.   int __cc;
  5779.   __builtin_s390_vftcisb(__a, 15, &__cc);
  5780.   return __cc != 0;
  5781. }
  5782. #endif
  5783.  
  5784. static inline __ATTRS_o_ai int
  5785. vec_any_numeric(__vector double __a) {
  5786.   int __cc;
  5787.   __builtin_s390_vftcidb(__a, 15, &__cc);
  5788.   return __cc != 0;
  5789. }
  5790.  
  5791. /*-- vec_andc ---------------------------------------------------------------*/
  5792.  
  5793. static inline __ATTRS_o_ai __vector __bool char
  5794. vec_andc(__vector __bool char __a, __vector __bool char __b) {
  5795.   return __a & ~__b;
  5796. }
  5797.  
  5798. static inline __ATTRS_o_ai __vector signed char
  5799. vec_andc(__vector signed char __a, __vector signed char __b) {
  5800.   return __a & ~__b;
  5801. }
  5802.  
  5803. // This prototype is deprecated.
  5804. static inline __ATTRS_o_ai __vector signed char
  5805. vec_andc(__vector __bool char __a, __vector signed char __b) {
  5806.   return __a & ~__b;
  5807. }
  5808.  
  5809. // This prototype is deprecated.
  5810. static inline __ATTRS_o_ai __vector signed char
  5811. vec_andc(__vector signed char __a, __vector __bool char __b) {
  5812.   return __a & ~__b;
  5813. }
  5814.  
  5815. static inline __ATTRS_o_ai __vector unsigned char
  5816. vec_andc(__vector unsigned char __a, __vector unsigned char __b) {
  5817.   return __a & ~__b;
  5818. }
  5819.  
  5820. // This prototype is deprecated.
  5821. static inline __ATTRS_o_ai __vector unsigned char
  5822. vec_andc(__vector __bool char __a, __vector unsigned char __b) {
  5823.   return __a & ~__b;
  5824. }
  5825.  
  5826. // This prototype is deprecated.
  5827. static inline __ATTRS_o_ai __vector unsigned char
  5828. vec_andc(__vector unsigned char __a, __vector __bool char __b) {
  5829.   return __a & ~__b;
  5830. }
  5831.  
  5832. static inline __ATTRS_o_ai __vector __bool short
  5833. vec_andc(__vector __bool short __a, __vector __bool short __b) {
  5834.   return __a & ~__b;
  5835. }
  5836.  
  5837. static inline __ATTRS_o_ai __vector signed short
  5838. vec_andc(__vector signed short __a, __vector signed short __b) {
  5839.   return __a & ~__b;
  5840. }
  5841.  
  5842. // This prototype is deprecated.
  5843. static inline __ATTRS_o_ai __vector signed short
  5844. vec_andc(__vector __bool short __a, __vector signed short __b) {
  5845.   return __a & ~__b;
  5846. }
  5847.  
  5848. // This prototype is deprecated.
  5849. static inline __ATTRS_o_ai __vector signed short
  5850. vec_andc(__vector signed short __a, __vector __bool short __b) {
  5851.   return __a & ~__b;
  5852. }
  5853.  
  5854. static inline __ATTRS_o_ai __vector unsigned short
  5855. vec_andc(__vector unsigned short __a, __vector unsigned short __b) {
  5856.   return __a & ~__b;
  5857. }
  5858.  
  5859. // This prototype is deprecated.
  5860. static inline __ATTRS_o_ai __vector unsigned short
  5861. vec_andc(__vector __bool short __a, __vector unsigned short __b) {
  5862.   return __a & ~__b;
  5863. }
  5864.  
  5865. // This prototype is deprecated.
  5866. static inline __ATTRS_o_ai __vector unsigned short
  5867. vec_andc(__vector unsigned short __a, __vector __bool short __b) {
  5868.   return __a & ~__b;
  5869. }
  5870.  
  5871. static inline __ATTRS_o_ai __vector __bool int
  5872. vec_andc(__vector __bool int __a, __vector __bool int __b) {
  5873.   return __a & ~__b;
  5874. }
  5875.  
  5876. static inline __ATTRS_o_ai __vector signed int
  5877. vec_andc(__vector signed int __a, __vector signed int __b) {
  5878.   return __a & ~__b;
  5879. }
  5880.  
  5881. // This prototype is deprecated.
  5882. static inline __ATTRS_o_ai __vector signed int
  5883. vec_andc(__vector __bool int __a, __vector signed int __b) {
  5884.   return __a & ~__b;
  5885. }
  5886.  
  5887. // This prototype is deprecated.
  5888. static inline __ATTRS_o_ai __vector signed int
  5889. vec_andc(__vector signed int __a, __vector __bool int __b) {
  5890.   return __a & ~__b;
  5891. }
  5892.  
  5893. static inline __ATTRS_o_ai __vector unsigned int
  5894. vec_andc(__vector unsigned int __a, __vector unsigned int __b) {
  5895.   return __a & ~__b;
  5896. }
  5897.  
  5898. // This prototype is deprecated.
  5899. static inline __ATTRS_o_ai __vector unsigned int
  5900. vec_andc(__vector __bool int __a, __vector unsigned int __b) {
  5901.   return __a & ~__b;
  5902. }
  5903.  
  5904. // This prototype is deprecated.
  5905. static inline __ATTRS_o_ai __vector unsigned int
  5906. vec_andc(__vector unsigned int __a, __vector __bool int __b) {
  5907.   return __a & ~__b;
  5908. }
  5909.  
  5910. static inline __ATTRS_o_ai __vector __bool long long
  5911. vec_andc(__vector __bool long long __a, __vector __bool long long __b) {
  5912.   return __a & ~__b;
  5913. }
  5914.  
  5915. static inline __ATTRS_o_ai __vector signed long long
  5916. vec_andc(__vector signed long long __a, __vector signed long long __b) {
  5917.   return __a & ~__b;
  5918. }
  5919.  
  5920. // This prototype is deprecated.
  5921. static inline __ATTRS_o_ai __vector signed long long
  5922. vec_andc(__vector __bool long long __a, __vector signed long long __b) {
  5923.   return __a & ~__b;
  5924. }
  5925.  
  5926. // This prototype is deprecated.
  5927. static inline __ATTRS_o_ai __vector signed long long
  5928. vec_andc(__vector signed long long __a, __vector __bool long long __b) {
  5929.   return __a & ~__b;
  5930. }
  5931.  
  5932. static inline __ATTRS_o_ai __vector unsigned long long
  5933. vec_andc(__vector unsigned long long __a, __vector unsigned long long __b) {
  5934.   return __a & ~__b;
  5935. }
  5936.  
  5937. // This prototype is deprecated.
  5938. static inline __ATTRS_o_ai __vector unsigned long long
  5939. vec_andc(__vector __bool long long __a, __vector unsigned long long __b) {
  5940.   return __a & ~__b;
  5941. }
  5942.  
  5943. // This prototype is deprecated.
  5944. static inline __ATTRS_o_ai __vector unsigned long long
  5945. vec_andc(__vector unsigned long long __a, __vector __bool long long __b) {
  5946.   return __a & ~__b;
  5947. }
  5948.  
  5949. #if __ARCH__ >= 12
  5950. static inline __ATTRS_o_ai __vector float
  5951. vec_andc(__vector float __a, __vector float __b) {
  5952.   return (__vector float)((__vector unsigned int)__a &
  5953.                          ~(__vector unsigned int)__b);
  5954. }
  5955. #endif
  5956.  
  5957. static inline __ATTRS_o_ai __vector double
  5958. vec_andc(__vector double __a, __vector double __b) {
  5959.   return (__vector double)((__vector unsigned long long)__a &
  5960.                          ~(__vector unsigned long long)__b);
  5961. }
  5962.  
  5963. // This prototype is deprecated.
  5964. static inline __ATTRS_o_ai __vector double
  5965. vec_andc(__vector __bool long long __a, __vector double __b) {
  5966.   return (__vector double)((__vector unsigned long long)__a &
  5967.                          ~(__vector unsigned long long)__b);
  5968. }
  5969.  
  5970. // This prototype is deprecated.
  5971. static inline __ATTRS_o_ai __vector double
  5972. vec_andc(__vector double __a, __vector __bool long long __b) {
  5973.   return (__vector double)((__vector unsigned long long)__a &
  5974.                          ~(__vector unsigned long long)__b);
  5975. }
  5976.  
  5977. /*-- vec_nor ----------------------------------------------------------------*/
  5978.  
  5979. static inline __ATTRS_o_ai __vector __bool char
  5980. vec_nor(__vector __bool char __a, __vector __bool char __b) {
  5981.   return ~(__a | __b);
  5982. }
  5983.  
  5984. static inline __ATTRS_o_ai __vector signed char
  5985. vec_nor(__vector signed char __a, __vector signed char __b) {
  5986.   return ~(__a | __b);
  5987. }
  5988.  
  5989. // This prototype is deprecated.
  5990. static inline __ATTRS_o_ai __vector signed char
  5991. vec_nor(__vector __bool char __a, __vector signed char __b) {
  5992.   return ~(__a | __b);
  5993. }
  5994.  
  5995. // This prototype is deprecated.
  5996. static inline __ATTRS_o_ai __vector signed char
  5997. vec_nor(__vector signed char __a, __vector __bool char __b) {
  5998.   return ~(__a | __b);
  5999. }
  6000.  
  6001. static inline __ATTRS_o_ai __vector unsigned char
  6002. vec_nor(__vector unsigned char __a, __vector unsigned char __b) {
  6003.   return ~(__a | __b);
  6004. }
  6005.  
  6006. // This prototype is deprecated.
  6007. static inline __ATTRS_o_ai __vector unsigned char
  6008. vec_nor(__vector __bool char __a, __vector unsigned char __b) {
  6009.   return ~(__a | __b);
  6010. }
  6011.  
  6012. // This prototype is deprecated.
  6013. static inline __ATTRS_o_ai __vector unsigned char
  6014. vec_nor(__vector unsigned char __a, __vector __bool char __b) {
  6015.   return ~(__a | __b);
  6016. }
  6017.  
  6018. static inline __ATTRS_o_ai __vector __bool short
  6019. vec_nor(__vector __bool short __a, __vector __bool short __b) {
  6020.   return ~(__a | __b);
  6021. }
  6022.  
  6023. static inline __ATTRS_o_ai __vector signed short
  6024. vec_nor(__vector signed short __a, __vector signed short __b) {
  6025.   return ~(__a | __b);
  6026. }
  6027.  
  6028. // This prototype is deprecated.
  6029. static inline __ATTRS_o_ai __vector signed short
  6030. vec_nor(__vector __bool short __a, __vector signed short __b) {
  6031.   return ~(__a | __b);
  6032. }
  6033.  
  6034. // This prototype is deprecated.
  6035. static inline __ATTRS_o_ai __vector signed short
  6036. vec_nor(__vector signed short __a, __vector __bool short __b) {
  6037.   return ~(__a | __b);
  6038. }
  6039.  
  6040. static inline __ATTRS_o_ai __vector unsigned short
  6041. vec_nor(__vector unsigned short __a, __vector unsigned short __b) {
  6042.   return ~(__a | __b);
  6043. }
  6044.  
  6045. // This prototype is deprecated.
  6046. static inline __ATTRS_o_ai __vector unsigned short
  6047. vec_nor(__vector __bool short __a, __vector unsigned short __b) {
  6048.   return ~(__a | __b);
  6049. }
  6050.  
  6051. // This prototype is deprecated.
  6052. static inline __ATTRS_o_ai __vector unsigned short
  6053. vec_nor(__vector unsigned short __a, __vector __bool short __b) {
  6054.   return ~(__a | __b);
  6055. }
  6056.  
  6057. static inline __ATTRS_o_ai __vector __bool int
  6058. vec_nor(__vector __bool int __a, __vector __bool int __b) {
  6059.   return ~(__a | __b);
  6060. }
  6061.  
  6062. static inline __ATTRS_o_ai __vector signed int
  6063. vec_nor(__vector signed int __a, __vector signed int __b) {
  6064.   return ~(__a | __b);
  6065. }
  6066.  
  6067. // This prototype is deprecated.
  6068. static inline __ATTRS_o_ai __vector signed int
  6069. vec_nor(__vector __bool int __a, __vector signed int __b) {
  6070.   return ~(__a | __b);
  6071. }
  6072.  
  6073. // This prototype is deprecated.
  6074. static inline __ATTRS_o_ai __vector signed int
  6075. vec_nor(__vector signed int __a, __vector __bool int __b) {
  6076.   return ~(__a | __b);
  6077. }
  6078.  
  6079. static inline __ATTRS_o_ai __vector unsigned int
  6080. vec_nor(__vector unsigned int __a, __vector unsigned int __b) {
  6081.   return ~(__a | __b);
  6082. }
  6083.  
  6084. // This prototype is deprecated.
  6085. static inline __ATTRS_o_ai __vector unsigned int
  6086. vec_nor(__vector __bool int __a, __vector unsigned int __b) {
  6087.   return ~(__a | __b);
  6088. }
  6089.  
  6090. // This prototype is deprecated.
  6091. static inline __ATTRS_o_ai __vector unsigned int
  6092. vec_nor(__vector unsigned int __a, __vector __bool int __b) {
  6093.   return ~(__a | __b);
  6094. }
  6095.  
  6096. static inline __ATTRS_o_ai __vector __bool long long
  6097. vec_nor(__vector __bool long long __a, __vector __bool long long __b) {
  6098.   return ~(__a | __b);
  6099. }
  6100.  
  6101. static inline __ATTRS_o_ai __vector signed long long
  6102. vec_nor(__vector signed long long __a, __vector signed long long __b) {
  6103.   return ~(__a | __b);
  6104. }
  6105.  
  6106. // This prototype is deprecated.
  6107. static inline __ATTRS_o_ai __vector signed long long
  6108. vec_nor(__vector __bool long long __a, __vector signed long long __b) {
  6109.   return ~(__a | __b);
  6110. }
  6111.  
  6112. // This prototype is deprecated.
  6113. static inline __ATTRS_o_ai __vector signed long long
  6114. vec_nor(__vector signed long long __a, __vector __bool long long __b) {
  6115.   return ~(__a | __b);
  6116. }
  6117.  
  6118. static inline __ATTRS_o_ai __vector unsigned long long
  6119. vec_nor(__vector unsigned long long __a, __vector unsigned long long __b) {
  6120.   return ~(__a | __b);
  6121. }
  6122.  
  6123. // This prototype is deprecated.
  6124. static inline __ATTRS_o_ai __vector unsigned long long
  6125. vec_nor(__vector __bool long long __a, __vector unsigned long long __b) {
  6126.   return ~(__a | __b);
  6127. }
  6128.  
  6129. // This prototype is deprecated.
  6130. static inline __ATTRS_o_ai __vector unsigned long long
  6131. vec_nor(__vector unsigned long long __a, __vector __bool long long __b) {
  6132.   return ~(__a | __b);
  6133. }
  6134.  
  6135. #if __ARCH__ >= 12
  6136. static inline __ATTRS_o_ai __vector float
  6137. vec_nor(__vector float __a, __vector float __b) {
  6138.   return (__vector float)~((__vector unsigned int)__a |
  6139.                          (__vector unsigned int)__b);
  6140. }
  6141. #endif
  6142.  
  6143. static inline __ATTRS_o_ai __vector double
  6144. vec_nor(__vector double __a, __vector double __b) {
  6145.   return (__vector double)~((__vector unsigned long long)__a |
  6146.                           (__vector unsigned long long)__b);
  6147. }
  6148.  
  6149. // This prototype is deprecated.
  6150. static inline __ATTRS_o_ai __vector double
  6151. vec_nor(__vector __bool long long __a, __vector double __b) {
  6152.   return (__vector double)~((__vector unsigned long long)__a |
  6153.                           (__vector unsigned long long)__b);
  6154. }
  6155.  
  6156. // This prototype is deprecated.
  6157. static inline __ATTRS_o_ai __vector double
  6158. vec_nor(__vector double __a, __vector __bool long long __b) {
  6159.   return (__vector double)~((__vector unsigned long long)__a |
  6160.                           (__vector unsigned long long)__b);
  6161. }
  6162.  
  6163. /*-- vec_orc ----------------------------------------------------------------*/
  6164.  
  6165. #if __ARCH__ >= 12
  6166. static inline __ATTRS_o_ai __vector __bool char
  6167. vec_orc(__vector __bool char __a, __vector __bool char __b) {
  6168.   return __a | ~__b;
  6169. }
  6170.  
  6171. static inline __ATTRS_o_ai __vector signed char
  6172. vec_orc(__vector signed char __a, __vector signed char __b) {
  6173.   return __a | ~__b;
  6174. }
  6175.  
  6176. static inline __ATTRS_o_ai __vector unsigned char
  6177. vec_orc(__vector unsigned char __a, __vector unsigned char __b) {
  6178.   return __a | ~__b;
  6179. }
  6180.  
  6181. static inline __ATTRS_o_ai __vector __bool short
  6182. vec_orc(__vector __bool short __a, __vector __bool short __b) {
  6183.   return __a | ~__b;
  6184. }
  6185.  
  6186. static inline __ATTRS_o_ai __vector signed short
  6187. vec_orc(__vector signed short __a, __vector signed short __b) {
  6188.   return __a | ~__b;
  6189. }
  6190.  
  6191. static inline __ATTRS_o_ai __vector unsigned short
  6192. vec_orc(__vector unsigned short __a, __vector unsigned short __b) {
  6193.   return __a | ~__b;
  6194. }
  6195.  
  6196. static inline __ATTRS_o_ai __vector __bool int
  6197. vec_orc(__vector __bool int __a, __vector __bool int __b) {
  6198.   return __a | ~__b;
  6199. }
  6200.  
  6201. static inline __ATTRS_o_ai __vector signed int
  6202. vec_orc(__vector signed int __a, __vector signed int __b) {
  6203.   return __a | ~__b;
  6204. }
  6205.  
  6206. static inline __ATTRS_o_ai __vector unsigned int
  6207. vec_orc(__vector unsigned int __a, __vector unsigned int __b) {
  6208.   return __a | ~__b;
  6209. }
  6210.  
  6211. static inline __ATTRS_o_ai __vector __bool long long
  6212. vec_orc(__vector __bool long long __a, __vector __bool long long __b) {
  6213.   return __a | ~__b;
  6214. }
  6215.  
  6216. static inline __ATTRS_o_ai __vector signed long long
  6217. vec_orc(__vector signed long long __a, __vector signed long long __b) {
  6218.   return __a | ~__b;
  6219. }
  6220.  
  6221. static inline __ATTRS_o_ai __vector unsigned long long
  6222. vec_orc(__vector unsigned long long __a, __vector unsigned long long __b) {
  6223.   return __a | ~__b;
  6224. }
  6225.  
  6226. static inline __ATTRS_o_ai __vector float
  6227. vec_orc(__vector float __a, __vector float __b) {
  6228.   return (__vector float)((__vector unsigned int)__a |
  6229.                         ~(__vector unsigned int)__b);
  6230. }
  6231.  
  6232. static inline __ATTRS_o_ai __vector double
  6233. vec_orc(__vector double __a, __vector double __b) {
  6234.   return (__vector double)((__vector unsigned long long)__a |
  6235.                          ~(__vector unsigned long long)__b);
  6236. }
  6237. #endif
  6238.  
  6239. /*-- vec_nand ---------------------------------------------------------------*/
  6240.  
  6241. #if __ARCH__ >= 12
  6242. static inline __ATTRS_o_ai __vector __bool char
  6243. vec_nand(__vector __bool char __a, __vector __bool char __b) {
  6244.   return ~(__a & __b);
  6245. }
  6246.  
  6247. static inline __ATTRS_o_ai __vector signed char
  6248. vec_nand(__vector signed char __a, __vector signed char __b) {
  6249.   return ~(__a & __b);
  6250. }
  6251.  
  6252. static inline __ATTRS_o_ai __vector unsigned char
  6253. vec_nand(__vector unsigned char __a, __vector unsigned char __b) {
  6254.   return ~(__a & __b);
  6255. }
  6256.  
  6257. static inline __ATTRS_o_ai __vector __bool short
  6258. vec_nand(__vector __bool short __a, __vector __bool short __b) {
  6259.   return ~(__a & __b);
  6260. }
  6261.  
  6262. static inline __ATTRS_o_ai __vector signed short
  6263. vec_nand(__vector signed short __a, __vector signed short __b) {
  6264.   return ~(__a & __b);
  6265. }
  6266.  
  6267. static inline __ATTRS_o_ai __vector unsigned short
  6268. vec_nand(__vector unsigned short __a, __vector unsigned short __b) {
  6269.   return ~(__a & __b);
  6270. }
  6271.  
  6272. static inline __ATTRS_o_ai __vector __bool int
  6273. vec_nand(__vector __bool int __a, __vector __bool int __b) {
  6274.   return ~(__a & __b);
  6275. }
  6276.  
  6277. static inline __ATTRS_o_ai __vector signed int
  6278. vec_nand(__vector signed int __a, __vector signed int __b) {
  6279.   return ~(__a & __b);
  6280. }
  6281.  
  6282. static inline __ATTRS_o_ai __vector unsigned int
  6283. vec_nand(__vector unsigned int __a, __vector unsigned int __b) {
  6284.   return ~(__a & __b);
  6285. }
  6286.  
  6287. static inline __ATTRS_o_ai __vector __bool long long
  6288. vec_nand(__vector __bool long long __a, __vector __bool long long __b) {
  6289.   return ~(__a & __b);
  6290. }
  6291.  
  6292. static inline __ATTRS_o_ai __vector signed long long
  6293. vec_nand(__vector signed long long __a, __vector signed long long __b) {
  6294.   return ~(__a & __b);
  6295. }
  6296.  
  6297. static inline __ATTRS_o_ai __vector unsigned long long
  6298. vec_nand(__vector unsigned long long __a, __vector unsigned long long __b) {
  6299.   return ~(__a & __b);
  6300. }
  6301.  
  6302. static inline __ATTRS_o_ai __vector float
  6303. vec_nand(__vector float __a, __vector float __b) {
  6304.   return (__vector float)~((__vector unsigned int)__a &
  6305.                          (__vector unsigned int)__b);
  6306. }
  6307.  
  6308. static inline __ATTRS_o_ai __vector double
  6309. vec_nand(__vector double __a, __vector double __b) {
  6310.   return (__vector double)~((__vector unsigned long long)__a &
  6311.                           (__vector unsigned long long)__b);
  6312. }
  6313. #endif
  6314.  
  6315. /*-- vec_eqv ----------------------------------------------------------------*/
  6316.  
  6317. #if __ARCH__ >= 12
  6318. static inline __ATTRS_o_ai __vector __bool char
  6319. vec_eqv(__vector __bool char __a, __vector __bool char __b) {
  6320.   return ~(__a ^ __b);
  6321. }
  6322.  
  6323. static inline __ATTRS_o_ai __vector signed char
  6324. vec_eqv(__vector signed char __a, __vector signed char __b) {
  6325.   return ~(__a ^ __b);
  6326. }
  6327.  
  6328. static inline __ATTRS_o_ai __vector unsigned char
  6329. vec_eqv(__vector unsigned char __a, __vector unsigned char __b) {
  6330.   return ~(__a ^ __b);
  6331. }
  6332.  
  6333. static inline __ATTRS_o_ai __vector __bool short
  6334. vec_eqv(__vector __bool short __a, __vector __bool short __b) {
  6335.   return ~(__a ^ __b);
  6336. }
  6337.  
  6338. static inline __ATTRS_o_ai __vector signed short
  6339. vec_eqv(__vector signed short __a, __vector signed short __b) {
  6340.   return ~(__a ^ __b);
  6341. }
  6342.  
  6343. static inline __ATTRS_o_ai __vector unsigned short
  6344. vec_eqv(__vector unsigned short __a, __vector unsigned short __b) {
  6345.   return ~(__a ^ __b);
  6346. }
  6347.  
  6348. static inline __ATTRS_o_ai __vector __bool int
  6349. vec_eqv(__vector __bool int __a, __vector __bool int __b) {
  6350.   return ~(__a ^ __b);
  6351. }
  6352.  
  6353. static inline __ATTRS_o_ai __vector signed int
  6354. vec_eqv(__vector signed int __a, __vector signed int __b) {
  6355.   return ~(__a ^ __b);
  6356. }
  6357.  
  6358. static inline __ATTRS_o_ai __vector unsigned int
  6359. vec_eqv(__vector unsigned int __a, __vector unsigned int __b) {
  6360.   return ~(__a ^ __b);
  6361. }
  6362.  
  6363. static inline __ATTRS_o_ai __vector __bool long long
  6364. vec_eqv(__vector __bool long long __a, __vector __bool long long __b) {
  6365.   return ~(__a ^ __b);
  6366. }
  6367.  
  6368. static inline __ATTRS_o_ai __vector signed long long
  6369. vec_eqv(__vector signed long long __a, __vector signed long long __b) {
  6370.   return ~(__a ^ __b);
  6371. }
  6372.  
  6373. static inline __ATTRS_o_ai __vector unsigned long long
  6374. vec_eqv(__vector unsigned long long __a, __vector unsigned long long __b) {
  6375.   return ~(__a ^ __b);
  6376. }
  6377.  
  6378. static inline __ATTRS_o_ai __vector float
  6379. vec_eqv(__vector float __a, __vector float __b) {
  6380.   return (__vector float)~((__vector unsigned int)__a ^
  6381.                          (__vector unsigned int)__b);
  6382. }
  6383.  
  6384. static inline __ATTRS_o_ai __vector double
  6385. vec_eqv(__vector double __a, __vector double __b) {
  6386.   return (__vector double)~((__vector unsigned long long)__a ^
  6387.                           (__vector unsigned long long)__b);
  6388. }
  6389. #endif
  6390.  
  6391. /*-- vec_cntlz --------------------------------------------------------------*/
  6392.  
  6393. static inline __ATTRS_o_ai __vector unsigned char
  6394. vec_cntlz(__vector signed char __a) {
  6395.   return __builtin_s390_vclzb((__vector unsigned char)__a);
  6396. }
  6397.  
  6398. static inline __ATTRS_o_ai __vector unsigned char
  6399. vec_cntlz(__vector unsigned char __a) {
  6400.   return __builtin_s390_vclzb(__a);
  6401. }
  6402.  
  6403. static inline __ATTRS_o_ai __vector unsigned short
  6404. vec_cntlz(__vector signed short __a) {
  6405.   return __builtin_s390_vclzh((__vector unsigned short)__a);
  6406. }
  6407.  
  6408. static inline __ATTRS_o_ai __vector unsigned short
  6409. vec_cntlz(__vector unsigned short __a) {
  6410.   return __builtin_s390_vclzh(__a);
  6411. }
  6412.  
  6413. static inline __ATTRS_o_ai __vector unsigned int
  6414. vec_cntlz(__vector signed int __a) {
  6415.   return __builtin_s390_vclzf((__vector unsigned int)__a);
  6416. }
  6417.  
  6418. static inline __ATTRS_o_ai __vector unsigned int
  6419. vec_cntlz(__vector unsigned int __a) {
  6420.   return __builtin_s390_vclzf(__a);
  6421. }
  6422.  
  6423. static inline __ATTRS_o_ai __vector unsigned long long
  6424. vec_cntlz(__vector signed long long __a) {
  6425.   return __builtin_s390_vclzg((__vector unsigned long long)__a);
  6426. }
  6427.  
  6428. static inline __ATTRS_o_ai __vector unsigned long long
  6429. vec_cntlz(__vector unsigned long long __a) {
  6430.   return __builtin_s390_vclzg(__a);
  6431. }
  6432.  
  6433. /*-- vec_cnttz --------------------------------------------------------------*/
  6434.  
  6435. static inline __ATTRS_o_ai __vector unsigned char
  6436. vec_cnttz(__vector signed char __a) {
  6437.   return __builtin_s390_vctzb((__vector unsigned char)__a);
  6438. }
  6439.  
  6440. static inline __ATTRS_o_ai __vector unsigned char
  6441. vec_cnttz(__vector unsigned char __a) {
  6442.   return __builtin_s390_vctzb(__a);
  6443. }
  6444.  
  6445. static inline __ATTRS_o_ai __vector unsigned short
  6446. vec_cnttz(__vector signed short __a) {
  6447.   return __builtin_s390_vctzh((__vector unsigned short)__a);
  6448. }
  6449.  
  6450. static inline __ATTRS_o_ai __vector unsigned short
  6451. vec_cnttz(__vector unsigned short __a) {
  6452.   return __builtin_s390_vctzh(__a);
  6453. }
  6454.  
  6455. static inline __ATTRS_o_ai __vector unsigned int
  6456. vec_cnttz(__vector signed int __a) {
  6457.   return __builtin_s390_vctzf((__vector unsigned int)__a);
  6458. }
  6459.  
  6460. static inline __ATTRS_o_ai __vector unsigned int
  6461. vec_cnttz(__vector unsigned int __a) {
  6462.   return __builtin_s390_vctzf(__a);
  6463. }
  6464.  
  6465. static inline __ATTRS_o_ai __vector unsigned long long
  6466. vec_cnttz(__vector signed long long __a) {
  6467.   return __builtin_s390_vctzg((__vector unsigned long long)__a);
  6468. }
  6469.  
  6470. static inline __ATTRS_o_ai __vector unsigned long long
  6471. vec_cnttz(__vector unsigned long long __a) {
  6472.   return __builtin_s390_vctzg(__a);
  6473. }
  6474.  
  6475. /*-- vec_popcnt -------------------------------------------------------------*/
  6476.  
  6477. static inline __ATTRS_o_ai __vector unsigned char
  6478. vec_popcnt(__vector signed char __a) {
  6479.   return __builtin_s390_vpopctb((__vector unsigned char)__a);
  6480. }
  6481.  
  6482. static inline __ATTRS_o_ai __vector unsigned char
  6483. vec_popcnt(__vector unsigned char __a) {
  6484.   return __builtin_s390_vpopctb(__a);
  6485. }
  6486.  
  6487. static inline __ATTRS_o_ai __vector unsigned short
  6488. vec_popcnt(__vector signed short __a) {
  6489.   return __builtin_s390_vpopcth((__vector unsigned short)__a);
  6490. }
  6491.  
  6492. static inline __ATTRS_o_ai __vector unsigned short
  6493. vec_popcnt(__vector unsigned short __a) {
  6494.   return __builtin_s390_vpopcth(__a);
  6495. }
  6496.  
  6497. static inline __ATTRS_o_ai __vector unsigned int
  6498. vec_popcnt(__vector signed int __a) {
  6499.   return __builtin_s390_vpopctf((__vector unsigned int)__a);
  6500. }
  6501.  
  6502. static inline __ATTRS_o_ai __vector unsigned int
  6503. vec_popcnt(__vector unsigned int __a) {
  6504.   return __builtin_s390_vpopctf(__a);
  6505. }
  6506.  
  6507. static inline __ATTRS_o_ai __vector unsigned long long
  6508. vec_popcnt(__vector signed long long __a) {
  6509.   return __builtin_s390_vpopctg((__vector unsigned long long)__a);
  6510. }
  6511.  
  6512. static inline __ATTRS_o_ai __vector unsigned long long
  6513. vec_popcnt(__vector unsigned long long __a) {
  6514.   return __builtin_s390_vpopctg(__a);
  6515. }
  6516.  
  6517. /*-- vec_rl -----------------------------------------------------------------*/
  6518.  
  6519. static inline __ATTRS_o_ai __vector signed char
  6520. vec_rl(__vector signed char __a, __vector unsigned char __b) {
  6521.   return (__vector signed char)__builtin_s390_verllvb(
  6522.     (__vector unsigned char)__a, __b);
  6523. }
  6524.  
  6525. static inline __ATTRS_o_ai __vector unsigned char
  6526. vec_rl(__vector unsigned char __a, __vector unsigned char __b) {
  6527.   return __builtin_s390_verllvb(__a, __b);
  6528. }
  6529.  
  6530. static inline __ATTRS_o_ai __vector signed short
  6531. vec_rl(__vector signed short __a, __vector unsigned short __b) {
  6532.   return (__vector signed short)__builtin_s390_verllvh(
  6533.     (__vector unsigned short)__a, __b);
  6534. }
  6535.  
  6536. static inline __ATTRS_o_ai __vector unsigned short
  6537. vec_rl(__vector unsigned short __a, __vector unsigned short __b) {
  6538.   return __builtin_s390_verllvh(__a, __b);
  6539. }
  6540.  
  6541. static inline __ATTRS_o_ai __vector signed int
  6542. vec_rl(__vector signed int __a, __vector unsigned int __b) {
  6543.   return (__vector signed int)__builtin_s390_verllvf(
  6544.     (__vector unsigned int)__a, __b);
  6545. }
  6546.  
  6547. static inline __ATTRS_o_ai __vector unsigned int
  6548. vec_rl(__vector unsigned int __a, __vector unsigned int __b) {
  6549.   return __builtin_s390_verllvf(__a, __b);
  6550. }
  6551.  
  6552. static inline __ATTRS_o_ai __vector signed long long
  6553. vec_rl(__vector signed long long __a, __vector unsigned long long __b) {
  6554.   return (__vector signed long long)__builtin_s390_verllvg(
  6555.     (__vector unsigned long long)__a, __b);
  6556. }
  6557.  
  6558. static inline __ATTRS_o_ai __vector unsigned long long
  6559. vec_rl(__vector unsigned long long __a, __vector unsigned long long __b) {
  6560.   return __builtin_s390_verllvg(__a, __b);
  6561. }
  6562.  
  6563. /*-- vec_rli ----------------------------------------------------------------*/
  6564.  
  6565. static inline __ATTRS_o_ai __vector signed char
  6566. vec_rli(__vector signed char __a, unsigned long __b) {
  6567.   return (__vector signed char)__builtin_s390_verllb(
  6568.     (__vector unsigned char)__a, (int)__b);
  6569. }
  6570.  
  6571. static inline __ATTRS_o_ai __vector unsigned char
  6572. vec_rli(__vector unsigned char __a, unsigned long __b) {
  6573.   return __builtin_s390_verllb(__a, (int)__b);
  6574. }
  6575.  
  6576. static inline __ATTRS_o_ai __vector signed short
  6577. vec_rli(__vector signed short __a, unsigned long __b) {
  6578.   return (__vector signed short)__builtin_s390_verllh(
  6579.     (__vector unsigned short)__a, (int)__b);
  6580. }
  6581.  
  6582. static inline __ATTRS_o_ai __vector unsigned short
  6583. vec_rli(__vector unsigned short __a, unsigned long __b) {
  6584.   return __builtin_s390_verllh(__a, (int)__b);
  6585. }
  6586.  
  6587. static inline __ATTRS_o_ai __vector signed int
  6588. vec_rli(__vector signed int __a, unsigned long __b) {
  6589.   return (__vector signed int)__builtin_s390_verllf(
  6590.     (__vector unsigned int)__a, (int)__b);
  6591. }
  6592.  
  6593. static inline __ATTRS_o_ai __vector unsigned int
  6594. vec_rli(__vector unsigned int __a, unsigned long __b) {
  6595.   return __builtin_s390_verllf(__a, (int)__b);
  6596. }
  6597.  
  6598. static inline __ATTRS_o_ai __vector signed long long
  6599. vec_rli(__vector signed long long __a, unsigned long __b) {
  6600.   return (__vector signed long long)__builtin_s390_verllg(
  6601.     (__vector unsigned long long)__a, (int)__b);
  6602. }
  6603.  
  6604. static inline __ATTRS_o_ai __vector unsigned long long
  6605. vec_rli(__vector unsigned long long __a, unsigned long __b) {
  6606.   return __builtin_s390_verllg(__a, (int)__b);
  6607. }
  6608.  
  6609. /*-- vec_rl_mask ------------------------------------------------------------*/
  6610.  
  6611. extern __ATTRS_o __vector signed char
  6612. vec_rl_mask(__vector signed char __a, __vector unsigned char __b,
  6613.             unsigned char __c) __constant(__c);
  6614.  
  6615. extern __ATTRS_o __vector unsigned char
  6616. vec_rl_mask(__vector unsigned char __a, __vector unsigned char __b,
  6617.             unsigned char __c) __constant(__c);
  6618.  
  6619. extern __ATTRS_o __vector signed short
  6620. vec_rl_mask(__vector signed short __a, __vector unsigned short __b,
  6621.             unsigned char __c) __constant(__c);
  6622.  
  6623. extern __ATTRS_o __vector unsigned short
  6624. vec_rl_mask(__vector unsigned short __a, __vector unsigned short __b,
  6625.             unsigned char __c) __constant(__c);
  6626.  
  6627. extern __ATTRS_o __vector signed int
  6628. vec_rl_mask(__vector signed int __a, __vector unsigned int __b,
  6629.             unsigned char __c) __constant(__c);
  6630.  
  6631. extern __ATTRS_o __vector unsigned int
  6632. vec_rl_mask(__vector unsigned int __a, __vector unsigned int __b,
  6633.             unsigned char __c) __constant(__c);
  6634.  
  6635. extern __ATTRS_o __vector signed long long
  6636. vec_rl_mask(__vector signed long long __a, __vector unsigned long long __b,
  6637.             unsigned char __c) __constant(__c);
  6638.  
  6639. extern __ATTRS_o __vector unsigned long long
  6640. vec_rl_mask(__vector unsigned long long __a, __vector unsigned long long __b,
  6641.             unsigned char __c) __constant(__c);
  6642.  
  6643. #define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
  6644.   __extension__ ({ \
  6645.     __vector unsigned char __res; \
  6646.     __vector unsigned char __x = (__vector unsigned char)(X); \
  6647.     __vector unsigned char __y = (__vector unsigned char)(Y); \
  6648.     switch (sizeof ((X)[0])) { \
  6649.     case 1: __res = (__vector unsigned char) __builtin_s390_verimb( \
  6650.              (__vector unsigned char)__x, (__vector unsigned char)__x, \
  6651.              (__vector unsigned char)__y, (Z)); break; \
  6652.     case 2: __res = (__vector unsigned char) __builtin_s390_verimh( \
  6653.              (__vector unsigned short)__x, (__vector unsigned short)__x, \
  6654.              (__vector unsigned short)__y, (Z)); break; \
  6655.     case 4: __res = (__vector unsigned char) __builtin_s390_verimf( \
  6656.              (__vector unsigned int)__x, (__vector unsigned int)__x, \
  6657.              (__vector unsigned int)__y, (Z)); break; \
  6658.     default: __res = (__vector unsigned char) __builtin_s390_verimg( \
  6659.              (__vector unsigned long long)__x, (__vector unsigned long long)__x, \
  6660.              (__vector unsigned long long)__y, (Z)); break; \
  6661.     } __res; }))
  6662.  
  6663. /*-- vec_sll ----------------------------------------------------------------*/
  6664.  
  6665. static inline __ATTRS_o_ai __vector signed char
  6666. vec_sll(__vector signed char __a, __vector unsigned char __b) {
  6667.   return (__vector signed char)__builtin_s390_vsl(
  6668.     (__vector unsigned char)__a, __b);
  6669. }
  6670.  
  6671. // This prototype is deprecated.
  6672. static inline __ATTRS_o_ai __vector signed char
  6673. vec_sll(__vector signed char __a, __vector unsigned short __b) {
  6674.   return (__vector signed char)__builtin_s390_vsl(
  6675.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6676. }
  6677.  
  6678. // This prototype is deprecated.
  6679. static inline __ATTRS_o_ai __vector signed char
  6680. vec_sll(__vector signed char __a, __vector unsigned int __b) {
  6681.   return (__vector signed char)__builtin_s390_vsl(
  6682.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6683. }
  6684.  
  6685. // This prototype is deprecated.
  6686. static inline __ATTRS_o_ai __vector __bool char
  6687. vec_sll(__vector __bool char __a, __vector unsigned char __b) {
  6688.   return (__vector __bool char)__builtin_s390_vsl(
  6689.     (__vector unsigned char)__a, __b);
  6690. }
  6691.  
  6692. // This prototype is deprecated.
  6693. static inline __ATTRS_o_ai __vector __bool char
  6694. vec_sll(__vector __bool char __a, __vector unsigned short __b) {
  6695.   return (__vector __bool char)__builtin_s390_vsl(
  6696.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6697. }
  6698.  
  6699. // This prototype is deprecated.
  6700. static inline __ATTRS_o_ai __vector __bool char
  6701. vec_sll(__vector __bool char __a, __vector unsigned int __b) {
  6702.   return (__vector __bool char)__builtin_s390_vsl(
  6703.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6704. }
  6705.  
  6706. static inline __ATTRS_o_ai __vector unsigned char
  6707. vec_sll(__vector unsigned char __a, __vector unsigned char __b) {
  6708.   return __builtin_s390_vsl(__a, __b);
  6709. }
  6710.  
  6711. // This prototype is deprecated.
  6712. static inline __ATTRS_o_ai __vector unsigned char
  6713. vec_sll(__vector unsigned char __a, __vector unsigned short __b) {
  6714.   return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
  6715. }
  6716.  
  6717. // This prototype is deprecated.
  6718. static inline __ATTRS_o_ai __vector unsigned char
  6719. vec_sll(__vector unsigned char __a, __vector unsigned int __b) {
  6720.   return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
  6721. }
  6722.  
  6723. static inline __ATTRS_o_ai __vector signed short
  6724. vec_sll(__vector signed short __a, __vector unsigned char __b) {
  6725.   return (__vector signed short)__builtin_s390_vsl(
  6726.     (__vector unsigned char)__a, __b);
  6727. }
  6728.  
  6729. // This prototype is deprecated.
  6730. static inline __ATTRS_o_ai __vector signed short
  6731. vec_sll(__vector signed short __a, __vector unsigned short __b) {
  6732.   return (__vector signed short)__builtin_s390_vsl(
  6733.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6734. }
  6735.  
  6736. // This prototype is deprecated.
  6737. static inline __ATTRS_o_ai __vector signed short
  6738. vec_sll(__vector signed short __a, __vector unsigned int __b) {
  6739.   return (__vector signed short)__builtin_s390_vsl(
  6740.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6741. }
  6742.  
  6743. // This prototype is deprecated.
  6744. static inline __ATTRS_o_ai __vector __bool short
  6745. vec_sll(__vector __bool short __a, __vector unsigned char __b) {
  6746.   return (__vector __bool short)__builtin_s390_vsl(
  6747.     (__vector unsigned char)__a, __b);
  6748. }
  6749.  
  6750. // This prototype is deprecated.
  6751. static inline __ATTRS_o_ai __vector __bool short
  6752. vec_sll(__vector __bool short __a, __vector unsigned short __b) {
  6753.   return (__vector __bool short)__builtin_s390_vsl(
  6754.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6755. }
  6756.  
  6757. // This prototype is deprecated.
  6758. static inline __ATTRS_o_ai __vector __bool short
  6759. vec_sll(__vector __bool short __a, __vector unsigned int __b) {
  6760.   return (__vector __bool short)__builtin_s390_vsl(
  6761.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6762. }
  6763.  
  6764. static inline __ATTRS_o_ai __vector unsigned short
  6765. vec_sll(__vector unsigned short __a, __vector unsigned char __b) {
  6766.   return (__vector unsigned short)__builtin_s390_vsl(
  6767.     (__vector unsigned char)__a, __b);
  6768. }
  6769.  
  6770. // This prototype is deprecated.
  6771. static inline __ATTRS_o_ai __vector unsigned short
  6772. vec_sll(__vector unsigned short __a, __vector unsigned short __b) {
  6773.   return (__vector unsigned short)__builtin_s390_vsl(
  6774.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6775. }
  6776.  
  6777. // This prototype is deprecated.
  6778. static inline __ATTRS_o_ai __vector unsigned short
  6779. vec_sll(__vector unsigned short __a, __vector unsigned int __b) {
  6780.   return (__vector unsigned short)__builtin_s390_vsl(
  6781.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6782. }
  6783.  
  6784. static inline __ATTRS_o_ai __vector signed int
  6785. vec_sll(__vector signed int __a, __vector unsigned char __b) {
  6786.   return (__vector signed int)__builtin_s390_vsl(
  6787.     (__vector unsigned char)__a, __b);
  6788. }
  6789.  
  6790. // This prototype is deprecated.
  6791. static inline __ATTRS_o_ai __vector signed int
  6792. vec_sll(__vector signed int __a, __vector unsigned short __b) {
  6793.   return (__vector signed int)__builtin_s390_vsl(
  6794.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6795. }
  6796.  
  6797. // This prototype is deprecated.
  6798. static inline __ATTRS_o_ai __vector signed int
  6799. vec_sll(__vector signed int __a, __vector unsigned int __b) {
  6800.   return (__vector signed int)__builtin_s390_vsl(
  6801.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6802. }
  6803.  
  6804. // This prototype is deprecated.
  6805. static inline __ATTRS_o_ai __vector __bool int
  6806. vec_sll(__vector __bool int __a, __vector unsigned char __b) {
  6807.   return (__vector __bool int)__builtin_s390_vsl(
  6808.     (__vector unsigned char)__a, __b);
  6809. }
  6810.  
  6811. // This prototype is deprecated.
  6812. static inline __ATTRS_o_ai __vector __bool int
  6813. vec_sll(__vector __bool int __a, __vector unsigned short __b) {
  6814.   return (__vector __bool int)__builtin_s390_vsl(
  6815.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6816. }
  6817.  
  6818. // This prototype is deprecated.
  6819. static inline __ATTRS_o_ai __vector __bool int
  6820. vec_sll(__vector __bool int __a, __vector unsigned int __b) {
  6821.   return (__vector __bool int)__builtin_s390_vsl(
  6822.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6823. }
  6824.  
  6825. static inline __ATTRS_o_ai __vector unsigned int
  6826. vec_sll(__vector unsigned int __a, __vector unsigned char __b) {
  6827.   return (__vector unsigned int)__builtin_s390_vsl(
  6828.     (__vector unsigned char)__a, __b);
  6829. }
  6830.  
  6831. // This prototype is deprecated.
  6832. static inline __ATTRS_o_ai __vector unsigned int
  6833. vec_sll(__vector unsigned int __a, __vector unsigned short __b) {
  6834.   return (__vector unsigned int)__builtin_s390_vsl(
  6835.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6836. }
  6837.  
  6838. // This prototype is deprecated.
  6839. static inline __ATTRS_o_ai __vector unsigned int
  6840. vec_sll(__vector unsigned int __a, __vector unsigned int __b) {
  6841.   return (__vector unsigned int)__builtin_s390_vsl(
  6842.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6843. }
  6844.  
  6845. static inline __ATTRS_o_ai __vector signed long long
  6846. vec_sll(__vector signed long long __a, __vector unsigned char __b) {
  6847.   return (__vector signed long long)__builtin_s390_vsl(
  6848.     (__vector unsigned char)__a, __b);
  6849. }
  6850.  
  6851. // This prototype is deprecated.
  6852. static inline __ATTRS_o_ai __vector signed long long
  6853. vec_sll(__vector signed long long __a, __vector unsigned short __b) {
  6854.   return (__vector signed long long)__builtin_s390_vsl(
  6855.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6856. }
  6857.  
  6858. // This prototype is deprecated.
  6859. static inline __ATTRS_o_ai __vector signed long long
  6860. vec_sll(__vector signed long long __a, __vector unsigned int __b) {
  6861.   return (__vector signed long long)__builtin_s390_vsl(
  6862.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6863. }
  6864.  
  6865. // This prototype is deprecated.
  6866. static inline __ATTRS_o_ai __vector __bool long long
  6867. vec_sll(__vector __bool long long __a, __vector unsigned char __b) {
  6868.   return (__vector __bool long long)__builtin_s390_vsl(
  6869.     (__vector unsigned char)__a, __b);
  6870. }
  6871.  
  6872. // This prototype is deprecated.
  6873. static inline __ATTRS_o_ai __vector __bool long long
  6874. vec_sll(__vector __bool long long __a, __vector unsigned short __b) {
  6875.   return (__vector __bool long long)__builtin_s390_vsl(
  6876.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6877. }
  6878.  
  6879. // This prototype is deprecated.
  6880. static inline __ATTRS_o_ai __vector __bool long long
  6881. vec_sll(__vector __bool long long __a, __vector unsigned int __b) {
  6882.   return (__vector __bool long long)__builtin_s390_vsl(
  6883.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6884. }
  6885.  
  6886. static inline __ATTRS_o_ai __vector unsigned long long
  6887. vec_sll(__vector unsigned long long __a, __vector unsigned char __b) {
  6888.   return (__vector unsigned long long)__builtin_s390_vsl(
  6889.     (__vector unsigned char)__a, __b);
  6890. }
  6891.  
  6892. // This prototype is deprecated.
  6893. static inline __ATTRS_o_ai __vector unsigned long long
  6894. vec_sll(__vector unsigned long long __a, __vector unsigned short __b) {
  6895.   return (__vector unsigned long long)__builtin_s390_vsl(
  6896.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6897. }
  6898.  
  6899. // This prototype is deprecated.
  6900. static inline __ATTRS_o_ai __vector unsigned long long
  6901. vec_sll(__vector unsigned long long __a, __vector unsigned int __b) {
  6902.   return (__vector unsigned long long)__builtin_s390_vsl(
  6903.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6904. }
  6905.  
  6906. /*-- vec_slb ----------------------------------------------------------------*/
  6907.  
  6908. static inline __ATTRS_o_ai __vector signed char
  6909. vec_slb(__vector signed char __a, __vector signed char __b) {
  6910.   return (__vector signed char)__builtin_s390_vslb(
  6911.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6912. }
  6913.  
  6914. static inline __ATTRS_o_ai __vector signed char
  6915. vec_slb(__vector signed char __a, __vector unsigned char __b) {
  6916.   return (__vector signed char)__builtin_s390_vslb(
  6917.     (__vector unsigned char)__a, __b);
  6918. }
  6919.  
  6920. static inline __ATTRS_o_ai __vector unsigned char
  6921. vec_slb(__vector unsigned char __a, __vector signed char __b) {
  6922.   return __builtin_s390_vslb(__a, (__vector unsigned char)__b);
  6923. }
  6924.  
  6925. static inline __ATTRS_o_ai __vector unsigned char
  6926. vec_slb(__vector unsigned char __a, __vector unsigned char __b) {
  6927.   return __builtin_s390_vslb(__a, __b);
  6928. }
  6929.  
  6930. static inline __ATTRS_o_ai __vector signed short
  6931. vec_slb(__vector signed short __a, __vector signed short __b) {
  6932.   return (__vector signed short)__builtin_s390_vslb(
  6933.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6934. }
  6935.  
  6936. static inline __ATTRS_o_ai __vector signed short
  6937. vec_slb(__vector signed short __a, __vector unsigned short __b) {
  6938.   return (__vector signed short)__builtin_s390_vslb(
  6939.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6940. }
  6941.  
  6942. static inline __ATTRS_o_ai __vector unsigned short
  6943. vec_slb(__vector unsigned short __a, __vector signed short __b) {
  6944.   return (__vector unsigned short)__builtin_s390_vslb(
  6945.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6946. }
  6947.  
  6948. static inline __ATTRS_o_ai __vector unsigned short
  6949. vec_slb(__vector unsigned short __a, __vector unsigned short __b) {
  6950.   return (__vector unsigned short)__builtin_s390_vslb(
  6951.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6952. }
  6953.  
  6954. static inline __ATTRS_o_ai __vector signed int
  6955. vec_slb(__vector signed int __a, __vector signed int __b) {
  6956.   return (__vector signed int)__builtin_s390_vslb(
  6957.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6958. }
  6959.  
  6960. static inline __ATTRS_o_ai __vector signed int
  6961. vec_slb(__vector signed int __a, __vector unsigned int __b) {
  6962.   return (__vector signed int)__builtin_s390_vslb(
  6963.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6964. }
  6965.  
  6966. static inline __ATTRS_o_ai __vector unsigned int
  6967. vec_slb(__vector unsigned int __a, __vector signed int __b) {
  6968.   return (__vector unsigned int)__builtin_s390_vslb(
  6969.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6970. }
  6971.  
  6972. static inline __ATTRS_o_ai __vector unsigned int
  6973. vec_slb(__vector unsigned int __a, __vector unsigned int __b) {
  6974.   return (__vector unsigned int)__builtin_s390_vslb(
  6975.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6976. }
  6977.  
  6978. static inline __ATTRS_o_ai __vector signed long long
  6979. vec_slb(__vector signed long long __a, __vector signed long long __b) {
  6980.   return (__vector signed long long)__builtin_s390_vslb(
  6981.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6982. }
  6983.  
  6984. static inline __ATTRS_o_ai __vector signed long long
  6985. vec_slb(__vector signed long long __a, __vector unsigned long long __b) {
  6986.   return (__vector signed long long)__builtin_s390_vslb(
  6987.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6988. }
  6989.  
  6990. static inline __ATTRS_o_ai __vector unsigned long long
  6991. vec_slb(__vector unsigned long long __a, __vector signed long long __b) {
  6992.   return (__vector unsigned long long)__builtin_s390_vslb(
  6993.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  6994. }
  6995.  
  6996. static inline __ATTRS_o_ai __vector unsigned long long
  6997. vec_slb(__vector unsigned long long __a, __vector unsigned long long __b) {
  6998.   return (__vector unsigned long long)__builtin_s390_vslb(
  6999.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7000. }
  7001.  
  7002. #if __ARCH__ >= 12
  7003. static inline __ATTRS_o_ai __vector float
  7004. vec_slb(__vector float __a, __vector signed int __b) {
  7005.   return (__vector float)__builtin_s390_vslb(
  7006.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7007. }
  7008.  
  7009. static inline __ATTRS_o_ai __vector float
  7010. vec_slb(__vector float __a, __vector unsigned int __b) {
  7011.   return (__vector float)__builtin_s390_vslb(
  7012.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7013. }
  7014. #endif
  7015.  
  7016. static inline __ATTRS_o_ai __vector double
  7017. vec_slb(__vector double __a, __vector signed long long __b) {
  7018.   return (__vector double)__builtin_s390_vslb(
  7019.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7020. }
  7021.  
  7022. static inline __ATTRS_o_ai __vector double
  7023. vec_slb(__vector double __a, __vector unsigned long long __b) {
  7024.   return (__vector double)__builtin_s390_vslb(
  7025.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7026. }
  7027.  
  7028. /*-- vec_sld ----------------------------------------------------------------*/
  7029.  
  7030. extern __ATTRS_o __vector signed char
  7031. vec_sld(__vector signed char __a, __vector signed char __b, int __c)
  7032.   __constant_range(__c, 0, 15);
  7033.  
  7034. extern __ATTRS_o __vector __bool char
  7035. vec_sld(__vector __bool char __a, __vector __bool char __b, int __c)
  7036.   __constant_range(__c, 0, 15);
  7037.  
  7038. extern __ATTRS_o __vector unsigned char
  7039. vec_sld(__vector unsigned char __a, __vector unsigned char __b, int __c)
  7040.   __constant_range(__c, 0, 15);
  7041.  
  7042. extern __ATTRS_o __vector signed short
  7043. vec_sld(__vector signed short __a, __vector signed short __b, int __c)
  7044.   __constant_range(__c, 0, 15);
  7045.  
  7046. extern __ATTRS_o __vector __bool short
  7047. vec_sld(__vector __bool short __a, __vector __bool short __b, int __c)
  7048.   __constant_range(__c, 0, 15);
  7049.  
  7050. extern __ATTRS_o __vector unsigned short
  7051. vec_sld(__vector unsigned short __a, __vector unsigned short __b, int __c)
  7052.   __constant_range(__c, 0, 15);
  7053.  
  7054. extern __ATTRS_o __vector signed int
  7055. vec_sld(__vector signed int __a, __vector signed int __b, int __c)
  7056.   __constant_range(__c, 0, 15);
  7057.  
  7058. extern __ATTRS_o __vector __bool int
  7059. vec_sld(__vector __bool int __a, __vector __bool int __b, int __c)
  7060.   __constant_range(__c, 0, 15);
  7061.  
  7062. extern __ATTRS_o __vector unsigned int
  7063. vec_sld(__vector unsigned int __a, __vector unsigned int __b, int __c)
  7064.   __constant_range(__c, 0, 15);
  7065.  
  7066. extern __ATTRS_o __vector signed long long
  7067. vec_sld(__vector signed long long __a, __vector signed long long __b, int __c)
  7068.   __constant_range(__c, 0, 15);
  7069.  
  7070. extern __ATTRS_o __vector __bool long long
  7071. vec_sld(__vector __bool long long __a, __vector __bool long long __b, int __c)
  7072.   __constant_range(__c, 0, 15);
  7073.  
  7074. extern __ATTRS_o __vector unsigned long long
  7075. vec_sld(__vector unsigned long long __a, __vector unsigned long long __b,
  7076.         int __c)
  7077.   __constant_range(__c, 0, 15);
  7078.  
  7079. #if __ARCH__ >= 12
  7080. extern __ATTRS_o __vector float
  7081. vec_sld(__vector float __a, __vector float __b, int __c)
  7082.   __constant_range(__c, 0, 15);
  7083. #endif
  7084.  
  7085. extern __ATTRS_o __vector double
  7086. vec_sld(__vector double __a, __vector double __b, int __c)
  7087.   __constant_range(__c, 0, 15);
  7088.  
  7089. #define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
  7090.   __builtin_s390_vsldb((__vector unsigned char)(X), \
  7091.                        (__vector unsigned char)(Y), (Z)))
  7092.  
  7093. /*-- vec_sldw ---------------------------------------------------------------*/
  7094.  
  7095. extern __ATTRS_o __vector signed char
  7096. vec_sldw(__vector signed char __a, __vector signed char __b, int __c)
  7097.   __constant_range(__c, 0, 3);
  7098.  
  7099. extern __ATTRS_o __vector unsigned char
  7100. vec_sldw(__vector unsigned char __a, __vector unsigned char __b, int __c)
  7101.   __constant_range(__c, 0, 3);
  7102.  
  7103. extern __ATTRS_o __vector signed short
  7104. vec_sldw(__vector signed short __a, __vector signed short __b, int __c)
  7105.   __constant_range(__c, 0, 3);
  7106.  
  7107. extern __ATTRS_o __vector unsigned short
  7108. vec_sldw(__vector unsigned short __a, __vector unsigned short __b, int __c)
  7109.   __constant_range(__c, 0, 3);
  7110.  
  7111. extern __ATTRS_o __vector signed int
  7112. vec_sldw(__vector signed int __a, __vector signed int __b, int __c)
  7113.   __constant_range(__c, 0, 3);
  7114.  
  7115. extern __ATTRS_o __vector unsigned int
  7116. vec_sldw(__vector unsigned int __a, __vector unsigned int __b, int __c)
  7117.   __constant_range(__c, 0, 3);
  7118.  
  7119. extern __ATTRS_o __vector signed long long
  7120. vec_sldw(__vector signed long long __a, __vector signed long long __b, int __c)
  7121.   __constant_range(__c, 0, 3);
  7122.  
  7123. extern __ATTRS_o __vector unsigned long long
  7124. vec_sldw(__vector unsigned long long __a, __vector unsigned long long __b,
  7125.          int __c)
  7126.   __constant_range(__c, 0, 3);
  7127.  
  7128. // This prototype is deprecated.
  7129. extern __ATTRS_o __vector double
  7130. vec_sldw(__vector double __a, __vector double __b, int __c)
  7131.   __constant_range(__c, 0, 3);
  7132.  
  7133. #define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
  7134.   __builtin_s390_vsldb((__vector unsigned char)(X), \
  7135.                        (__vector unsigned char)(Y), (Z) * 4))
  7136.  
  7137. /*-- vec_sldb ---------------------------------------------------------------*/
  7138.  
  7139. #if __ARCH__ >= 13
  7140.  
  7141. extern __ATTRS_o __vector signed char
  7142. vec_sldb(__vector signed char __a, __vector signed char __b, int __c)
  7143.   __constant_range(__c, 0, 7);
  7144.  
  7145. extern __ATTRS_o __vector unsigned char
  7146. vec_sldb(__vector unsigned char __a, __vector unsigned char __b, int __c)
  7147.   __constant_range(__c, 0, 7);
  7148.  
  7149. extern __ATTRS_o __vector signed short
  7150. vec_sldb(__vector signed short __a, __vector signed short __b, int __c)
  7151.   __constant_range(__c, 0, 7);
  7152.  
  7153. extern __ATTRS_o __vector unsigned short
  7154. vec_sldb(__vector unsigned short __a, __vector unsigned short __b, int __c)
  7155.   __constant_range(__c, 0, 7);
  7156.  
  7157. extern __ATTRS_o __vector signed int
  7158. vec_sldb(__vector signed int __a, __vector signed int __b, int __c)
  7159.   __constant_range(__c, 0, 7);
  7160.  
  7161. extern __ATTRS_o __vector unsigned int
  7162. vec_sldb(__vector unsigned int __a, __vector unsigned int __b, int __c)
  7163.   __constant_range(__c, 0, 7);
  7164.  
  7165. extern __ATTRS_o __vector signed long long
  7166. vec_sldb(__vector signed long long __a, __vector signed long long __b, int __c)
  7167.   __constant_range(__c, 0, 7);
  7168.  
  7169. extern __ATTRS_o __vector unsigned long long
  7170. vec_sldb(__vector unsigned long long __a, __vector unsigned long long __b,
  7171.          int __c)
  7172.   __constant_range(__c, 0, 7);
  7173.  
  7174. extern __ATTRS_o __vector float
  7175. vec_sldb(__vector float __a, __vector float __b, int __c)
  7176.   __constant_range(__c, 0, 7);
  7177.  
  7178. extern __ATTRS_o __vector double
  7179. vec_sldb(__vector double __a, __vector double __b, int __c)
  7180.   __constant_range(__c, 0, 7);
  7181.  
  7182. #define vec_sldb(X, Y, Z) ((__typeof__((vec_sldb)((X), (Y), (Z)))) \
  7183.   __builtin_s390_vsld((__vector unsigned char)(X), \
  7184.                       (__vector unsigned char)(Y), (Z)))
  7185.  
  7186. #endif
  7187.  
  7188. /*-- vec_sral ---------------------------------------------------------------*/
  7189.  
  7190. static inline __ATTRS_o_ai __vector signed char
  7191. vec_sral(__vector signed char __a, __vector unsigned char __b) {
  7192.   return (__vector signed char)__builtin_s390_vsra(
  7193.     (__vector unsigned char)__a, __b);
  7194. }
  7195.  
  7196. // This prototype is deprecated.
  7197. static inline __ATTRS_o_ai __vector signed char
  7198. vec_sral(__vector signed char __a, __vector unsigned short __b) {
  7199.   return (__vector signed char)__builtin_s390_vsra(
  7200.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7201. }
  7202.  
  7203. // This prototype is deprecated.
  7204. static inline __ATTRS_o_ai __vector signed char
  7205. vec_sral(__vector signed char __a, __vector unsigned int __b) {
  7206.   return (__vector signed char)__builtin_s390_vsra(
  7207.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7208. }
  7209.  
  7210. // This prototype is deprecated.
  7211. static inline __ATTRS_o_ai __vector __bool char
  7212. vec_sral(__vector __bool char __a, __vector unsigned char __b) {
  7213.   return (__vector __bool char)__builtin_s390_vsra(
  7214.     (__vector unsigned char)__a, __b);
  7215. }
  7216.  
  7217. // This prototype is deprecated.
  7218. static inline __ATTRS_o_ai __vector __bool char
  7219. vec_sral(__vector __bool char __a, __vector unsigned short __b) {
  7220.   return (__vector __bool char)__builtin_s390_vsra(
  7221.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7222. }
  7223.  
  7224. // This prototype is deprecated.
  7225. static inline __ATTRS_o_ai __vector __bool char
  7226. vec_sral(__vector __bool char __a, __vector unsigned int __b) {
  7227.   return (__vector __bool char)__builtin_s390_vsra(
  7228.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7229. }
  7230.  
  7231. static inline __ATTRS_o_ai __vector unsigned char
  7232. vec_sral(__vector unsigned char __a, __vector unsigned char __b) {
  7233.   return __builtin_s390_vsra(__a, __b);
  7234. }
  7235.  
  7236. // This prototype is deprecated.
  7237. static inline __ATTRS_o_ai __vector unsigned char
  7238. vec_sral(__vector unsigned char __a, __vector unsigned short __b) {
  7239.   return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
  7240. }
  7241.  
  7242. // This prototype is deprecated.
  7243. static inline __ATTRS_o_ai __vector unsigned char
  7244. vec_sral(__vector unsigned char __a, __vector unsigned int __b) {
  7245.   return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
  7246. }
  7247.  
  7248. static inline __ATTRS_o_ai __vector signed short
  7249. vec_sral(__vector signed short __a, __vector unsigned char __b) {
  7250.   return (__vector signed short)__builtin_s390_vsra(
  7251.     (__vector unsigned char)__a, __b);
  7252. }
  7253.  
  7254. // This prototype is deprecated.
  7255. static inline __ATTRS_o_ai __vector signed short
  7256. vec_sral(__vector signed short __a, __vector unsigned short __b) {
  7257.   return (__vector signed short)__builtin_s390_vsra(
  7258.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7259. }
  7260.  
  7261. // This prototype is deprecated.
  7262. static inline __ATTRS_o_ai __vector signed short
  7263. vec_sral(__vector signed short __a, __vector unsigned int __b) {
  7264.   return (__vector signed short)__builtin_s390_vsra(
  7265.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7266. }
  7267.  
  7268. // This prototype is deprecated.
  7269. static inline __ATTRS_o_ai __vector __bool short
  7270. vec_sral(__vector __bool short __a, __vector unsigned char __b) {
  7271.   return (__vector __bool short)__builtin_s390_vsra(
  7272.     (__vector unsigned char)__a, __b);
  7273. }
  7274.  
  7275. // This prototype is deprecated.
  7276. static inline __ATTRS_o_ai __vector __bool short
  7277. vec_sral(__vector __bool short __a, __vector unsigned short __b) {
  7278.   return (__vector __bool short)__builtin_s390_vsra(
  7279.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7280. }
  7281.  
  7282. // This prototype is deprecated.
  7283. static inline __ATTRS_o_ai __vector __bool short
  7284. vec_sral(__vector __bool short __a, __vector unsigned int __b) {
  7285.   return (__vector __bool short)__builtin_s390_vsra(
  7286.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7287. }
  7288.  
  7289. static inline __ATTRS_o_ai __vector unsigned short
  7290. vec_sral(__vector unsigned short __a, __vector unsigned char __b) {
  7291.   return (__vector unsigned short)__builtin_s390_vsra(
  7292.     (__vector unsigned char)__a, __b);
  7293. }
  7294.  
  7295. // This prototype is deprecated.
  7296. static inline __ATTRS_o_ai __vector unsigned short
  7297. vec_sral(__vector unsigned short __a, __vector unsigned short __b) {
  7298.   return (__vector unsigned short)__builtin_s390_vsra(
  7299.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7300. }
  7301.  
  7302. // This prototype is deprecated.
  7303. static inline __ATTRS_o_ai __vector unsigned short
  7304. vec_sral(__vector unsigned short __a, __vector unsigned int __b) {
  7305.   return (__vector unsigned short)__builtin_s390_vsra(
  7306.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7307. }
  7308.  
  7309. static inline __ATTRS_o_ai __vector signed int
  7310. vec_sral(__vector signed int __a, __vector unsigned char __b) {
  7311.   return (__vector signed int)__builtin_s390_vsra(
  7312.     (__vector unsigned char)__a, __b);
  7313. }
  7314.  
  7315. // This prototype is deprecated.
  7316. static inline __ATTRS_o_ai __vector signed int
  7317. vec_sral(__vector signed int __a, __vector unsigned short __b) {
  7318.   return (__vector signed int)__builtin_s390_vsra(
  7319.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7320. }
  7321.  
  7322. // This prototype is deprecated.
  7323. static inline __ATTRS_o_ai __vector signed int
  7324. vec_sral(__vector signed int __a, __vector unsigned int __b) {
  7325.   return (__vector signed int)__builtin_s390_vsra(
  7326.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7327. }
  7328.  
  7329. // This prototype is deprecated.
  7330. static inline __ATTRS_o_ai __vector __bool int
  7331. vec_sral(__vector __bool int __a, __vector unsigned char __b) {
  7332.   return (__vector __bool int)__builtin_s390_vsra(
  7333.     (__vector unsigned char)__a, __b);
  7334. }
  7335.  
  7336. // This prototype is deprecated.
  7337. static inline __ATTRS_o_ai __vector __bool int
  7338. vec_sral(__vector __bool int __a, __vector unsigned short __b) {
  7339.   return (__vector __bool int)__builtin_s390_vsra(
  7340.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7341. }
  7342.  
  7343. // This prototype is deprecated.
  7344. static inline __ATTRS_o_ai __vector __bool int
  7345. vec_sral(__vector __bool int __a, __vector unsigned int __b) {
  7346.   return (__vector __bool int)__builtin_s390_vsra(
  7347.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7348. }
  7349.  
  7350. static inline __ATTRS_o_ai __vector unsigned int
  7351. vec_sral(__vector unsigned int __a, __vector unsigned char __b) {
  7352.   return (__vector unsigned int)__builtin_s390_vsra(
  7353.     (__vector unsigned char)__a, __b);
  7354. }
  7355.  
  7356. // This prototype is deprecated.
  7357. static inline __ATTRS_o_ai __vector unsigned int
  7358. vec_sral(__vector unsigned int __a, __vector unsigned short __b) {
  7359.   return (__vector unsigned int)__builtin_s390_vsra(
  7360.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7361. }
  7362.  
  7363. // This prototype is deprecated.
  7364. static inline __ATTRS_o_ai __vector unsigned int
  7365. vec_sral(__vector unsigned int __a, __vector unsigned int __b) {
  7366.   return (__vector unsigned int)__builtin_s390_vsra(
  7367.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7368. }
  7369.  
  7370. static inline __ATTRS_o_ai __vector signed long long
  7371. vec_sral(__vector signed long long __a, __vector unsigned char __b) {
  7372.   return (__vector signed long long)__builtin_s390_vsra(
  7373.     (__vector unsigned char)__a, __b);
  7374. }
  7375.  
  7376. // This prototype is deprecated.
  7377. static inline __ATTRS_o_ai __vector signed long long
  7378. vec_sral(__vector signed long long __a, __vector unsigned short __b) {
  7379.   return (__vector signed long long)__builtin_s390_vsra(
  7380.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7381. }
  7382.  
  7383. // This prototype is deprecated.
  7384. static inline __ATTRS_o_ai __vector signed long long
  7385. vec_sral(__vector signed long long __a, __vector unsigned int __b) {
  7386.   return (__vector signed long long)__builtin_s390_vsra(
  7387.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7388. }
  7389.  
  7390. // This prototype is deprecated.
  7391. static inline __ATTRS_o_ai __vector __bool long long
  7392. vec_sral(__vector __bool long long __a, __vector unsigned char __b) {
  7393.   return (__vector __bool long long)__builtin_s390_vsra(
  7394.     (__vector unsigned char)__a, __b);
  7395. }
  7396.  
  7397. // This prototype is deprecated.
  7398. static inline __ATTRS_o_ai __vector __bool long long
  7399. vec_sral(__vector __bool long long __a, __vector unsigned short __b) {
  7400.   return (__vector __bool long long)__builtin_s390_vsra(
  7401.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7402. }
  7403.  
  7404. // This prototype is deprecated.
  7405. static inline __ATTRS_o_ai __vector __bool long long
  7406. vec_sral(__vector __bool long long __a, __vector unsigned int __b) {
  7407.   return (__vector __bool long long)__builtin_s390_vsra(
  7408.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7409. }
  7410.  
  7411. static inline __ATTRS_o_ai __vector unsigned long long
  7412. vec_sral(__vector unsigned long long __a, __vector unsigned char __b) {
  7413.   return (__vector unsigned long long)__builtin_s390_vsra(
  7414.     (__vector unsigned char)__a, __b);
  7415. }
  7416.  
  7417. // This prototype is deprecated.
  7418. static inline __ATTRS_o_ai __vector unsigned long long
  7419. vec_sral(__vector unsigned long long __a, __vector unsigned short __b) {
  7420.   return (__vector unsigned long long)__builtin_s390_vsra(
  7421.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7422. }
  7423.  
  7424. // This prototype is deprecated.
  7425. static inline __ATTRS_o_ai __vector unsigned long long
  7426. vec_sral(__vector unsigned long long __a, __vector unsigned int __b) {
  7427.   return (__vector unsigned long long)__builtin_s390_vsra(
  7428.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7429. }
  7430.  
  7431. /*-- vec_srab ---------------------------------------------------------------*/
  7432.  
  7433. static inline __ATTRS_o_ai __vector signed char
  7434. vec_srab(__vector signed char __a, __vector signed char __b) {
  7435.   return (__vector signed char)__builtin_s390_vsrab(
  7436.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7437. }
  7438.  
  7439. static inline __ATTRS_o_ai __vector signed char
  7440. vec_srab(__vector signed char __a, __vector unsigned char __b) {
  7441.   return (__vector signed char)__builtin_s390_vsrab(
  7442.     (__vector unsigned char)__a, __b);
  7443. }
  7444.  
  7445. static inline __ATTRS_o_ai __vector unsigned char
  7446. vec_srab(__vector unsigned char __a, __vector signed char __b) {
  7447.   return __builtin_s390_vsrab(__a, (__vector unsigned char)__b);
  7448. }
  7449.  
  7450. static inline __ATTRS_o_ai __vector unsigned char
  7451. vec_srab(__vector unsigned char __a, __vector unsigned char __b) {
  7452.   return __builtin_s390_vsrab(__a, __b);
  7453. }
  7454.  
  7455. static inline __ATTRS_o_ai __vector signed short
  7456. vec_srab(__vector signed short __a, __vector signed short __b) {
  7457.   return (__vector signed short)__builtin_s390_vsrab(
  7458.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7459. }
  7460.  
  7461. static inline __ATTRS_o_ai __vector signed short
  7462. vec_srab(__vector signed short __a, __vector unsigned short __b) {
  7463.   return (__vector signed short)__builtin_s390_vsrab(
  7464.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7465. }
  7466.  
  7467. static inline __ATTRS_o_ai __vector unsigned short
  7468. vec_srab(__vector unsigned short __a, __vector signed short __b) {
  7469.   return (__vector unsigned short)__builtin_s390_vsrab(
  7470.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7471. }
  7472.  
  7473. static inline __ATTRS_o_ai __vector unsigned short
  7474. vec_srab(__vector unsigned short __a, __vector unsigned short __b) {
  7475.   return (__vector unsigned short)__builtin_s390_vsrab(
  7476.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7477. }
  7478.  
  7479. static inline __ATTRS_o_ai __vector signed int
  7480. vec_srab(__vector signed int __a, __vector signed int __b) {
  7481.   return (__vector signed int)__builtin_s390_vsrab(
  7482.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7483. }
  7484.  
  7485. static inline __ATTRS_o_ai __vector signed int
  7486. vec_srab(__vector signed int __a, __vector unsigned int __b) {
  7487.   return (__vector signed int)__builtin_s390_vsrab(
  7488.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7489. }
  7490.  
  7491. static inline __ATTRS_o_ai __vector unsigned int
  7492. vec_srab(__vector unsigned int __a, __vector signed int __b) {
  7493.   return (__vector unsigned int)__builtin_s390_vsrab(
  7494.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7495. }
  7496.  
  7497. static inline __ATTRS_o_ai __vector unsigned int
  7498. vec_srab(__vector unsigned int __a, __vector unsigned int __b) {
  7499.   return (__vector unsigned int)__builtin_s390_vsrab(
  7500.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7501. }
  7502.  
  7503. static inline __ATTRS_o_ai __vector signed long long
  7504. vec_srab(__vector signed long long __a, __vector signed long long __b) {
  7505.   return (__vector signed long long)__builtin_s390_vsrab(
  7506.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7507. }
  7508.  
  7509. static inline __ATTRS_o_ai __vector signed long long
  7510. vec_srab(__vector signed long long __a, __vector unsigned long long __b) {
  7511.   return (__vector signed long long)__builtin_s390_vsrab(
  7512.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7513. }
  7514.  
  7515. static inline __ATTRS_o_ai __vector unsigned long long
  7516. vec_srab(__vector unsigned long long __a, __vector signed long long __b) {
  7517.   return (__vector unsigned long long)__builtin_s390_vsrab(
  7518.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7519. }
  7520.  
  7521. static inline __ATTRS_o_ai __vector unsigned long long
  7522. vec_srab(__vector unsigned long long __a, __vector unsigned long long __b) {
  7523.   return (__vector unsigned long long)__builtin_s390_vsrab(
  7524.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7525. }
  7526.  
  7527. #if __ARCH__ >= 12
  7528. static inline __ATTRS_o_ai __vector float
  7529. vec_srab(__vector float __a, __vector signed int __b) {
  7530.   return (__vector float)__builtin_s390_vsrab(
  7531.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7532. }
  7533.  
  7534. static inline __ATTRS_o_ai __vector float
  7535. vec_srab(__vector float __a, __vector unsigned int __b) {
  7536.   return (__vector float)__builtin_s390_vsrab(
  7537.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7538. }
  7539. #endif
  7540.  
  7541. static inline __ATTRS_o_ai __vector double
  7542. vec_srab(__vector double __a, __vector signed long long __b) {
  7543.   return (__vector double)__builtin_s390_vsrab(
  7544.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7545. }
  7546.  
  7547. static inline __ATTRS_o_ai __vector double
  7548. vec_srab(__vector double __a, __vector unsigned long long __b) {
  7549.   return (__vector double)__builtin_s390_vsrab(
  7550.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7551. }
  7552.  
  7553. /*-- vec_srl ----------------------------------------------------------------*/
  7554.  
  7555. static inline __ATTRS_o_ai __vector signed char
  7556. vec_srl(__vector signed char __a, __vector unsigned char __b) {
  7557.   return (__vector signed char)__builtin_s390_vsrl(
  7558.     (__vector unsigned char)__a, __b);
  7559. }
  7560.  
  7561. // This prototype is deprecated.
  7562. static inline __ATTRS_o_ai __vector signed char
  7563. vec_srl(__vector signed char __a, __vector unsigned short __b) {
  7564.   return (__vector signed char)__builtin_s390_vsrl(
  7565.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7566. }
  7567.  
  7568. // This prototype is deprecated.
  7569. static inline __ATTRS_o_ai __vector signed char
  7570. vec_srl(__vector signed char __a, __vector unsigned int __b) {
  7571.   return (__vector signed char)__builtin_s390_vsrl(
  7572.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7573. }
  7574.  
  7575. // This prototype is deprecated.
  7576. static inline __ATTRS_o_ai __vector __bool char
  7577. vec_srl(__vector __bool char __a, __vector unsigned char __b) {
  7578.   return (__vector __bool char)__builtin_s390_vsrl(
  7579.     (__vector unsigned char)__a, __b);
  7580. }
  7581.  
  7582. // This prototype is deprecated.
  7583. static inline __ATTRS_o_ai __vector __bool char
  7584. vec_srl(__vector __bool char __a, __vector unsigned short __b) {
  7585.   return (__vector __bool char)__builtin_s390_vsrl(
  7586.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7587. }
  7588.  
  7589. // This prototype is deprecated.
  7590. static inline __ATTRS_o_ai __vector __bool char
  7591. vec_srl(__vector __bool char __a, __vector unsigned int __b) {
  7592.   return (__vector __bool char)__builtin_s390_vsrl(
  7593.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7594. }
  7595.  
  7596. static inline __ATTRS_o_ai __vector unsigned char
  7597. vec_srl(__vector unsigned char __a, __vector unsigned char __b) {
  7598.   return __builtin_s390_vsrl(__a, __b);
  7599. }
  7600.  
  7601. // This prototype is deprecated.
  7602. static inline __ATTRS_o_ai __vector unsigned char
  7603. vec_srl(__vector unsigned char __a, __vector unsigned short __b) {
  7604.   return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
  7605. }
  7606.  
  7607. // This prototype is deprecated.
  7608. static inline __ATTRS_o_ai __vector unsigned char
  7609. vec_srl(__vector unsigned char __a, __vector unsigned int __b) {
  7610.   return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
  7611. }
  7612.  
  7613. static inline __ATTRS_o_ai __vector signed short
  7614. vec_srl(__vector signed short __a, __vector unsigned char __b) {
  7615.   return (__vector signed short)__builtin_s390_vsrl(
  7616.     (__vector unsigned char)__a, __b);
  7617. }
  7618.  
  7619. // This prototype is deprecated.
  7620. static inline __ATTRS_o_ai __vector signed short
  7621. vec_srl(__vector signed short __a, __vector unsigned short __b) {
  7622.   return (__vector signed short)__builtin_s390_vsrl(
  7623.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7624. }
  7625.  
  7626. // This prototype is deprecated.
  7627. static inline __ATTRS_o_ai __vector signed short
  7628. vec_srl(__vector signed short __a, __vector unsigned int __b) {
  7629.   return (__vector signed short)__builtin_s390_vsrl(
  7630.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7631. }
  7632.  
  7633. // This prototype is deprecated.
  7634. static inline __ATTRS_o_ai __vector __bool short
  7635. vec_srl(__vector __bool short __a, __vector unsigned char __b) {
  7636.   return (__vector __bool short)__builtin_s390_vsrl(
  7637.     (__vector unsigned char)__a, __b);
  7638. }
  7639.  
  7640. // This prototype is deprecated.
  7641. static inline __ATTRS_o_ai __vector __bool short
  7642. vec_srl(__vector __bool short __a, __vector unsigned short __b) {
  7643.   return (__vector __bool short)__builtin_s390_vsrl(
  7644.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7645. }
  7646.  
  7647. // This prototype is deprecated.
  7648. static inline __ATTRS_o_ai __vector __bool short
  7649. vec_srl(__vector __bool short __a, __vector unsigned int __b) {
  7650.   return (__vector __bool short)__builtin_s390_vsrl(
  7651.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7652. }
  7653.  
  7654. static inline __ATTRS_o_ai __vector unsigned short
  7655. vec_srl(__vector unsigned short __a, __vector unsigned char __b) {
  7656.   return (__vector unsigned short)__builtin_s390_vsrl(
  7657.     (__vector unsigned char)__a, __b);
  7658. }
  7659.  
  7660. // This prototype is deprecated.
  7661. static inline __ATTRS_o_ai __vector unsigned short
  7662. vec_srl(__vector unsigned short __a, __vector unsigned short __b) {
  7663.   return (__vector unsigned short)__builtin_s390_vsrl(
  7664.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7665. }
  7666.  
  7667. // This prototype is deprecated.
  7668. static inline __ATTRS_o_ai __vector unsigned short
  7669. vec_srl(__vector unsigned short __a, __vector unsigned int __b) {
  7670.   return (__vector unsigned short)__builtin_s390_vsrl(
  7671.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7672. }
  7673.  
  7674. static inline __ATTRS_o_ai __vector signed int
  7675. vec_srl(__vector signed int __a, __vector unsigned char __b) {
  7676.   return (__vector signed int)__builtin_s390_vsrl(
  7677.     (__vector unsigned char)__a, __b);
  7678. }
  7679.  
  7680. // This prototype is deprecated.
  7681. static inline __ATTRS_o_ai __vector signed int
  7682. vec_srl(__vector signed int __a, __vector unsigned short __b) {
  7683.   return (__vector signed int)__builtin_s390_vsrl(
  7684.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7685. }
  7686.  
  7687. // This prototype is deprecated.
  7688. static inline __ATTRS_o_ai __vector signed int
  7689. vec_srl(__vector signed int __a, __vector unsigned int __b) {
  7690.   return (__vector signed int)__builtin_s390_vsrl(
  7691.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7692. }
  7693.  
  7694. // This prototype is deprecated.
  7695. static inline __ATTRS_o_ai __vector __bool int
  7696. vec_srl(__vector __bool int __a, __vector unsigned char __b) {
  7697.   return (__vector __bool int)__builtin_s390_vsrl(
  7698.     (__vector unsigned char)__a, __b);
  7699. }
  7700.  
  7701. // This prototype is deprecated.
  7702. static inline __ATTRS_o_ai __vector __bool int
  7703. vec_srl(__vector __bool int __a, __vector unsigned short __b) {
  7704.   return (__vector __bool int)__builtin_s390_vsrl(
  7705.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7706. }
  7707.  
  7708. // This prototype is deprecated.
  7709. static inline __ATTRS_o_ai __vector __bool int
  7710. vec_srl(__vector __bool int __a, __vector unsigned int __b) {
  7711.   return (__vector __bool int)__builtin_s390_vsrl(
  7712.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7713. }
  7714.  
  7715. static inline __ATTRS_o_ai __vector unsigned int
  7716. vec_srl(__vector unsigned int __a, __vector unsigned char __b) {
  7717.   return (__vector unsigned int)__builtin_s390_vsrl(
  7718.     (__vector unsigned char)__a, __b);
  7719. }
  7720.  
  7721. // This prototype is deprecated.
  7722. static inline __ATTRS_o_ai __vector unsigned int
  7723. vec_srl(__vector unsigned int __a, __vector unsigned short __b) {
  7724.   return (__vector unsigned int)__builtin_s390_vsrl(
  7725.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7726. }
  7727.  
  7728. // This prototype is deprecated.
  7729. static inline __ATTRS_o_ai __vector unsigned int
  7730. vec_srl(__vector unsigned int __a, __vector unsigned int __b) {
  7731.   return (__vector unsigned int)__builtin_s390_vsrl(
  7732.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7733. }
  7734.  
  7735. static inline __ATTRS_o_ai __vector signed long long
  7736. vec_srl(__vector signed long long __a, __vector unsigned char __b) {
  7737.   return (__vector signed long long)__builtin_s390_vsrl(
  7738.     (__vector unsigned char)__a, __b);
  7739. }
  7740.  
  7741. // This prototype is deprecated.
  7742. static inline __ATTRS_o_ai __vector signed long long
  7743. vec_srl(__vector signed long long __a, __vector unsigned short __b) {
  7744.   return (__vector signed long long)__builtin_s390_vsrl(
  7745.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7746. }
  7747.  
  7748. // This prototype is deprecated.
  7749. static inline __ATTRS_o_ai __vector signed long long
  7750. vec_srl(__vector signed long long __a, __vector unsigned int __b) {
  7751.   return (__vector signed long long)__builtin_s390_vsrl(
  7752.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7753. }
  7754.  
  7755. // This prototype is deprecated.
  7756. static inline __ATTRS_o_ai __vector __bool long long
  7757. vec_srl(__vector __bool long long __a, __vector unsigned char __b) {
  7758.   return (__vector __bool long long)__builtin_s390_vsrl(
  7759.     (__vector unsigned char)__a, __b);
  7760. }
  7761.  
  7762. // This prototype is deprecated.
  7763. static inline __ATTRS_o_ai __vector __bool long long
  7764. vec_srl(__vector __bool long long __a, __vector unsigned short __b) {
  7765.   return (__vector __bool long long)__builtin_s390_vsrl(
  7766.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7767. }
  7768.  
  7769. // This prototype is deprecated.
  7770. static inline __ATTRS_o_ai __vector __bool long long
  7771. vec_srl(__vector __bool long long __a, __vector unsigned int __b) {
  7772.   return (__vector __bool long long)__builtin_s390_vsrl(
  7773.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7774. }
  7775.  
  7776. static inline __ATTRS_o_ai __vector unsigned long long
  7777. vec_srl(__vector unsigned long long __a, __vector unsigned char __b) {
  7778.   return (__vector unsigned long long)__builtin_s390_vsrl(
  7779.     (__vector unsigned char)__a, __b);
  7780. }
  7781.  
  7782. // This prototype is deprecated.
  7783. static inline __ATTRS_o_ai __vector unsigned long long
  7784. vec_srl(__vector unsigned long long __a, __vector unsigned short __b) {
  7785.   return (__vector unsigned long long)__builtin_s390_vsrl(
  7786.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7787. }
  7788.  
  7789. // This prototype is deprecated.
  7790. static inline __ATTRS_o_ai __vector unsigned long long
  7791. vec_srl(__vector unsigned long long __a, __vector unsigned int __b) {
  7792.   return (__vector unsigned long long)__builtin_s390_vsrl(
  7793.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7794. }
  7795.  
  7796. /*-- vec_srb ----------------------------------------------------------------*/
  7797.  
  7798. static inline __ATTRS_o_ai __vector signed char
  7799. vec_srb(__vector signed char __a, __vector signed char __b) {
  7800.   return (__vector signed char)__builtin_s390_vsrlb(
  7801.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7802. }
  7803.  
  7804. static inline __ATTRS_o_ai __vector signed char
  7805. vec_srb(__vector signed char __a, __vector unsigned char __b) {
  7806.   return (__vector signed char)__builtin_s390_vsrlb(
  7807.     (__vector unsigned char)__a, __b);
  7808. }
  7809.  
  7810. static inline __ATTRS_o_ai __vector unsigned char
  7811. vec_srb(__vector unsigned char __a, __vector signed char __b) {
  7812.   return __builtin_s390_vsrlb(__a, (__vector unsigned char)__b);
  7813. }
  7814.  
  7815. static inline __ATTRS_o_ai __vector unsigned char
  7816. vec_srb(__vector unsigned char __a, __vector unsigned char __b) {
  7817.   return __builtin_s390_vsrlb(__a, __b);
  7818. }
  7819.  
  7820. static inline __ATTRS_o_ai __vector signed short
  7821. vec_srb(__vector signed short __a, __vector signed short __b) {
  7822.   return (__vector signed short)__builtin_s390_vsrlb(
  7823.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7824. }
  7825.  
  7826. static inline __ATTRS_o_ai __vector signed short
  7827. vec_srb(__vector signed short __a, __vector unsigned short __b) {
  7828.   return (__vector signed short)__builtin_s390_vsrlb(
  7829.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7830. }
  7831.  
  7832. static inline __ATTRS_o_ai __vector unsigned short
  7833. vec_srb(__vector unsigned short __a, __vector signed short __b) {
  7834.   return (__vector unsigned short)__builtin_s390_vsrlb(
  7835.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7836. }
  7837.  
  7838. static inline __ATTRS_o_ai __vector unsigned short
  7839. vec_srb(__vector unsigned short __a, __vector unsigned short __b) {
  7840.   return (__vector unsigned short)__builtin_s390_vsrlb(
  7841.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7842. }
  7843.  
  7844. static inline __ATTRS_o_ai __vector signed int
  7845. vec_srb(__vector signed int __a, __vector signed int __b) {
  7846.   return (__vector signed int)__builtin_s390_vsrlb(
  7847.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7848. }
  7849.  
  7850. static inline __ATTRS_o_ai __vector signed int
  7851. vec_srb(__vector signed int __a, __vector unsigned int __b) {
  7852.   return (__vector signed int)__builtin_s390_vsrlb(
  7853.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7854. }
  7855.  
  7856. static inline __ATTRS_o_ai __vector unsigned int
  7857. vec_srb(__vector unsigned int __a, __vector signed int __b) {
  7858.   return (__vector unsigned int)__builtin_s390_vsrlb(
  7859.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7860. }
  7861.  
  7862. static inline __ATTRS_o_ai __vector unsigned int
  7863. vec_srb(__vector unsigned int __a, __vector unsigned int __b) {
  7864.   return (__vector unsigned int)__builtin_s390_vsrlb(
  7865.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7866. }
  7867.  
  7868. static inline __ATTRS_o_ai __vector signed long long
  7869. vec_srb(__vector signed long long __a, __vector signed long long __b) {
  7870.   return (__vector signed long long)__builtin_s390_vsrlb(
  7871.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7872. }
  7873.  
  7874. static inline __ATTRS_o_ai __vector signed long long
  7875. vec_srb(__vector signed long long __a, __vector unsigned long long __b) {
  7876.   return (__vector signed long long)__builtin_s390_vsrlb(
  7877.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7878. }
  7879.  
  7880. static inline __ATTRS_o_ai __vector unsigned long long
  7881. vec_srb(__vector unsigned long long __a, __vector signed long long __b) {
  7882.   return (__vector unsigned long long)__builtin_s390_vsrlb(
  7883.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7884. }
  7885.  
  7886. static inline __ATTRS_o_ai __vector unsigned long long
  7887. vec_srb(__vector unsigned long long __a, __vector unsigned long long __b) {
  7888.   return (__vector unsigned long long)__builtin_s390_vsrlb(
  7889.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7890. }
  7891.  
  7892. #if __ARCH__ >= 12
  7893. static inline __ATTRS_o_ai __vector float
  7894. vec_srb(__vector float __a, __vector signed int __b) {
  7895.   return (__vector float)__builtin_s390_vsrlb(
  7896.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7897. }
  7898.  
  7899. static inline __ATTRS_o_ai __vector float
  7900. vec_srb(__vector float __a, __vector unsigned int __b) {
  7901.   return (__vector float)__builtin_s390_vsrlb(
  7902.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7903. }
  7904. #endif
  7905.  
  7906. static inline __ATTRS_o_ai __vector double
  7907. vec_srb(__vector double __a, __vector signed long long __b) {
  7908.   return (__vector double)__builtin_s390_vsrlb(
  7909.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7910. }
  7911.  
  7912. static inline __ATTRS_o_ai __vector double
  7913. vec_srb(__vector double __a, __vector unsigned long long __b) {
  7914.   return (__vector double)__builtin_s390_vsrlb(
  7915.     (__vector unsigned char)__a, (__vector unsigned char)__b);
  7916. }
  7917.  
  7918. /*-- vec_srdb ---------------------------------------------------------------*/
  7919.  
  7920. #if __ARCH__ >= 13
  7921.  
  7922. extern __ATTRS_o __vector signed char
  7923. vec_srdb(__vector signed char __a, __vector signed char __b, int __c)
  7924.   __constant_range(__c, 0, 7);
  7925.  
  7926. extern __ATTRS_o __vector unsigned char
  7927. vec_srdb(__vector unsigned char __a, __vector unsigned char __b, int __c)
  7928.   __constant_range(__c, 0, 7);
  7929.  
  7930. extern __ATTRS_o __vector signed short
  7931. vec_srdb(__vector signed short __a, __vector signed short __b, int __c)
  7932.   __constant_range(__c, 0, 7);
  7933.  
  7934. extern __ATTRS_o __vector unsigned short
  7935. vec_srdb(__vector unsigned short __a, __vector unsigned short __b, int __c)
  7936.   __constant_range(__c, 0, 7);
  7937.  
  7938. extern __ATTRS_o __vector signed int
  7939. vec_srdb(__vector signed int __a, __vector signed int __b, int __c)
  7940.   __constant_range(__c, 0, 7);
  7941.  
  7942. extern __ATTRS_o __vector unsigned int
  7943. vec_srdb(__vector unsigned int __a, __vector unsigned int __b, int __c)
  7944.   __constant_range(__c, 0, 7);
  7945.  
  7946. extern __ATTRS_o __vector signed long long
  7947. vec_srdb(__vector signed long long __a, __vector signed long long __b, int __c)
  7948.   __constant_range(__c, 0, 7);
  7949.  
  7950. extern __ATTRS_o __vector unsigned long long
  7951. vec_srdb(__vector unsigned long long __a, __vector unsigned long long __b,
  7952.          int __c)
  7953.   __constant_range(__c, 0, 7);
  7954.  
  7955. extern __ATTRS_o __vector float
  7956. vec_srdb(__vector float __a, __vector float __b, int __c)
  7957.   __constant_range(__c, 0, 7);
  7958.  
  7959. extern __ATTRS_o __vector double
  7960. vec_srdb(__vector double __a, __vector double __b, int __c)
  7961.   __constant_range(__c, 0, 7);
  7962.  
  7963. #define vec_srdb(X, Y, Z) ((__typeof__((vec_srdb)((X), (Y), (Z)))) \
  7964.   __builtin_s390_vsrd((__vector unsigned char)(X), \
  7965.                       (__vector unsigned char)(Y), (Z)))
  7966.  
  7967. #endif
  7968.  
  7969. /*-- vec_abs ----------------------------------------------------------------*/
  7970.  
  7971. static inline __ATTRS_o_ai __vector signed char
  7972. vec_abs(__vector signed char __a) {
  7973.   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed char)0));
  7974. }
  7975.  
  7976. static inline __ATTRS_o_ai __vector signed short
  7977. vec_abs(__vector signed short __a) {
  7978.   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed short)0));
  7979. }
  7980.  
  7981. static inline __ATTRS_o_ai __vector signed int
  7982. vec_abs(__vector signed int __a) {
  7983.   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed int)0));
  7984. }
  7985.  
  7986. static inline __ATTRS_o_ai __vector signed long long
  7987. vec_abs(__vector signed long long __a) {
  7988.   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed long long)0));
  7989. }
  7990.  
  7991. #if __ARCH__ >= 12
  7992. static inline __ATTRS_o_ai __vector float
  7993. vec_abs(__vector float __a) {
  7994.   return __builtin_s390_vflpsb(__a);
  7995. }
  7996. #endif
  7997.  
  7998. static inline __ATTRS_o_ai __vector double
  7999. vec_abs(__vector double __a) {
  8000.   return __builtin_s390_vflpdb(__a);
  8001. }
  8002.  
  8003. /*-- vec_nabs ---------------------------------------------------------------*/
  8004.  
  8005. #if __ARCH__ >= 12
  8006. static inline __ATTRS_o_ai __vector float
  8007. vec_nabs(__vector float __a) {
  8008.   return __builtin_s390_vflnsb(__a);
  8009. }
  8010. #endif
  8011.  
  8012. static inline __ATTRS_o_ai __vector double
  8013. vec_nabs(__vector double __a) {
  8014.   return __builtin_s390_vflndb(__a);
  8015. }
  8016.  
  8017. /*-- vec_max ----------------------------------------------------------------*/
  8018.  
  8019. static inline __ATTRS_o_ai __vector signed char
  8020. vec_max(__vector signed char __a, __vector signed char __b) {
  8021.   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
  8022. }
  8023.  
  8024. // This prototype is deprecated.
  8025. static inline __ATTRS_o_ai __vector signed char
  8026. vec_max(__vector signed char __a, __vector __bool char __b) {
  8027.   __vector signed char __bc = (__vector signed char)__b;
  8028.   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
  8029. }
  8030.  
  8031. // This prototype is deprecated.
  8032. static inline __ATTRS_o_ai __vector signed char
  8033. vec_max(__vector __bool char __a, __vector signed char __b) {
  8034.   __vector signed char __ac = (__vector signed char)__a;
  8035.   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
  8036. }
  8037.  
  8038. static inline __ATTRS_o_ai __vector unsigned char
  8039. vec_max(__vector unsigned char __a, __vector unsigned char __b) {
  8040.   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
  8041. }
  8042.  
  8043. // This prototype is deprecated.
  8044. static inline __ATTRS_o_ai __vector unsigned char
  8045. vec_max(__vector unsigned char __a, __vector __bool char __b) {
  8046.   __vector unsigned char __bc = (__vector unsigned char)__b;
  8047.   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
  8048. }
  8049.  
  8050. // This prototype is deprecated.
  8051. static inline __ATTRS_o_ai __vector unsigned char
  8052. vec_max(__vector __bool char __a, __vector unsigned char __b) {
  8053.   __vector unsigned char __ac = (__vector unsigned char)__a;
  8054.   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
  8055. }
  8056.  
  8057. static inline __ATTRS_o_ai __vector signed short
  8058. vec_max(__vector signed short __a, __vector signed short __b) {
  8059.   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
  8060. }
  8061.  
  8062. // This prototype is deprecated.
  8063. static inline __ATTRS_o_ai __vector signed short
  8064. vec_max(__vector signed short __a, __vector __bool short __b) {
  8065.   __vector signed short __bc = (__vector signed short)__b;
  8066.   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
  8067. }
  8068.  
  8069. // This prototype is deprecated.
  8070. static inline __ATTRS_o_ai __vector signed short
  8071. vec_max(__vector __bool short __a, __vector signed short __b) {
  8072.   __vector signed short __ac = (__vector signed short)__a;
  8073.   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
  8074. }
  8075.  
  8076. static inline __ATTRS_o_ai __vector unsigned short
  8077. vec_max(__vector unsigned short __a, __vector unsigned short __b) {
  8078.   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
  8079. }
  8080.  
  8081. // This prototype is deprecated.
  8082. static inline __ATTRS_o_ai __vector unsigned short
  8083. vec_max(__vector unsigned short __a, __vector __bool short __b) {
  8084.   __vector unsigned short __bc = (__vector unsigned short)__b;
  8085.   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
  8086. }
  8087.  
  8088. // This prototype is deprecated.
  8089. static inline __ATTRS_o_ai __vector unsigned short
  8090. vec_max(__vector __bool short __a, __vector unsigned short __b) {
  8091.   __vector unsigned short __ac = (__vector unsigned short)__a;
  8092.   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
  8093. }
  8094.  
  8095. static inline __ATTRS_o_ai __vector signed int
  8096. vec_max(__vector signed int __a, __vector signed int __b) {
  8097.   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
  8098. }
  8099.  
  8100. // This prototype is deprecated.
  8101. static inline __ATTRS_o_ai __vector signed int
  8102. vec_max(__vector signed int __a, __vector __bool int __b) {
  8103.   __vector signed int __bc = (__vector signed int)__b;
  8104.   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
  8105. }
  8106.  
  8107. // This prototype is deprecated.
  8108. static inline __ATTRS_o_ai __vector signed int
  8109. vec_max(__vector __bool int __a, __vector signed int __b) {
  8110.   __vector signed int __ac = (__vector signed int)__a;
  8111.   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
  8112. }
  8113.  
  8114. static inline __ATTRS_o_ai __vector unsigned int
  8115. vec_max(__vector unsigned int __a, __vector unsigned int __b) {
  8116.   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
  8117. }
  8118.  
  8119. // This prototype is deprecated.
  8120. static inline __ATTRS_o_ai __vector unsigned int
  8121. vec_max(__vector unsigned int __a, __vector __bool int __b) {
  8122.   __vector unsigned int __bc = (__vector unsigned int)__b;
  8123.   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
  8124. }
  8125.  
  8126. // This prototype is deprecated.
  8127. static inline __ATTRS_o_ai __vector unsigned int
  8128. vec_max(__vector __bool int __a, __vector unsigned int __b) {
  8129.   __vector unsigned int __ac = (__vector unsigned int)__a;
  8130.   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
  8131. }
  8132.  
  8133. static inline __ATTRS_o_ai __vector signed long long
  8134. vec_max(__vector signed long long __a, __vector signed long long __b) {
  8135.   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
  8136. }
  8137.  
  8138. // This prototype is deprecated.
  8139. static inline __ATTRS_o_ai __vector signed long long
  8140. vec_max(__vector signed long long __a, __vector __bool long long __b) {
  8141.   __vector signed long long __bc = (__vector signed long long)__b;
  8142.   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
  8143. }
  8144.  
  8145. // This prototype is deprecated.
  8146. static inline __ATTRS_o_ai __vector signed long long
  8147. vec_max(__vector __bool long long __a, __vector signed long long __b) {
  8148.   __vector signed long long __ac = (__vector signed long long)__a;
  8149.   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
  8150. }
  8151.  
  8152. static inline __ATTRS_o_ai __vector unsigned long long
  8153. vec_max(__vector unsigned long long __a, __vector unsigned long long __b) {
  8154.   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
  8155. }
  8156.  
  8157. // This prototype is deprecated.
  8158. static inline __ATTRS_o_ai __vector unsigned long long
  8159. vec_max(__vector unsigned long long __a, __vector __bool long long __b) {
  8160.   __vector unsigned long long __bc = (__vector unsigned long long)__b;
  8161.   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
  8162. }
  8163.  
  8164. // This prototype is deprecated.
  8165. static inline __ATTRS_o_ai __vector unsigned long long
  8166. vec_max(__vector __bool long long __a, __vector unsigned long long __b) {
  8167.   __vector unsigned long long __ac = (__vector unsigned long long)__a;
  8168.   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
  8169. }
  8170.  
  8171. #if __ARCH__ >= 12
  8172. static inline __ATTRS_o_ai __vector float
  8173. vec_max(__vector float __a, __vector float __b) {
  8174.   return __builtin_s390_vfmaxsb(__a, __b, 0);
  8175. }
  8176. #endif
  8177.  
  8178. static inline __ATTRS_o_ai __vector double
  8179. vec_max(__vector double __a, __vector double __b) {
  8180. #if __ARCH__ >= 12
  8181.   return __builtin_s390_vfmaxdb(__a, __b, 0);
  8182. #else
  8183.   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
  8184. #endif
  8185. }
  8186.  
  8187. /*-- vec_min ----------------------------------------------------------------*/
  8188.  
  8189. static inline __ATTRS_o_ai __vector signed char
  8190. vec_min(__vector signed char __a, __vector signed char __b) {
  8191.   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
  8192. }
  8193.  
  8194. // This prototype is deprecated.
  8195. static inline __ATTRS_o_ai __vector signed char
  8196. vec_min(__vector signed char __a, __vector __bool char __b) {
  8197.   __vector signed char __bc = (__vector signed char)__b;
  8198.   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
  8199. }
  8200.  
  8201. // This prototype is deprecated.
  8202. static inline __ATTRS_o_ai __vector signed char
  8203. vec_min(__vector __bool char __a, __vector signed char __b) {
  8204.   __vector signed char __ac = (__vector signed char)__a;
  8205.   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
  8206. }
  8207.  
  8208. static inline __ATTRS_o_ai __vector unsigned char
  8209. vec_min(__vector unsigned char __a, __vector unsigned char __b) {
  8210.   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
  8211. }
  8212.  
  8213. // This prototype is deprecated.
  8214. static inline __ATTRS_o_ai __vector unsigned char
  8215. vec_min(__vector unsigned char __a, __vector __bool char __b) {
  8216.   __vector unsigned char __bc = (__vector unsigned char)__b;
  8217.   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
  8218. }
  8219.  
  8220. // This prototype is deprecated.
  8221. static inline __ATTRS_o_ai __vector unsigned char
  8222. vec_min(__vector __bool char __a, __vector unsigned char __b) {
  8223.   __vector unsigned char __ac = (__vector unsigned char)__a;
  8224.   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
  8225. }
  8226.  
  8227. static inline __ATTRS_o_ai __vector signed short
  8228. vec_min(__vector signed short __a, __vector signed short __b) {
  8229.   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
  8230. }
  8231.  
  8232. // This prototype is deprecated.
  8233. static inline __ATTRS_o_ai __vector signed short
  8234. vec_min(__vector signed short __a, __vector __bool short __b) {
  8235.   __vector signed short __bc = (__vector signed short)__b;
  8236.   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
  8237. }
  8238.  
  8239. // This prototype is deprecated.
  8240. static inline __ATTRS_o_ai __vector signed short
  8241. vec_min(__vector __bool short __a, __vector signed short __b) {
  8242.   __vector signed short __ac = (__vector signed short)__a;
  8243.   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
  8244. }
  8245.  
  8246. static inline __ATTRS_o_ai __vector unsigned short
  8247. vec_min(__vector unsigned short __a, __vector unsigned short __b) {
  8248.   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
  8249. }
  8250.  
  8251. // This prototype is deprecated.
  8252. static inline __ATTRS_o_ai __vector unsigned short
  8253. vec_min(__vector unsigned short __a, __vector __bool short __b) {
  8254.   __vector unsigned short __bc = (__vector unsigned short)__b;
  8255.   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
  8256. }
  8257.  
  8258. // This prototype is deprecated.
  8259. static inline __ATTRS_o_ai __vector unsigned short
  8260. vec_min(__vector __bool short __a, __vector unsigned short __b) {
  8261.   __vector unsigned short __ac = (__vector unsigned short)__a;
  8262.   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
  8263. }
  8264.  
  8265. static inline __ATTRS_o_ai __vector signed int
  8266. vec_min(__vector signed int __a, __vector signed int __b) {
  8267.   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
  8268. }
  8269.  
  8270. // This prototype is deprecated.
  8271. static inline __ATTRS_o_ai __vector signed int
  8272. vec_min(__vector signed int __a, __vector __bool int __b) {
  8273.   __vector signed int __bc = (__vector signed int)__b;
  8274.   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
  8275. }
  8276.  
  8277. // This prototype is deprecated.
  8278. static inline __ATTRS_o_ai __vector signed int
  8279. vec_min(__vector __bool int __a, __vector signed int __b) {
  8280.   __vector signed int __ac = (__vector signed int)__a;
  8281.   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
  8282. }
  8283.  
  8284. static inline __ATTRS_o_ai __vector unsigned int
  8285. vec_min(__vector unsigned int __a, __vector unsigned int __b) {
  8286.   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
  8287. }
  8288.  
  8289. // This prototype is deprecated.
  8290. static inline __ATTRS_o_ai __vector unsigned int
  8291. vec_min(__vector unsigned int __a, __vector __bool int __b) {
  8292.   __vector unsigned int __bc = (__vector unsigned int)__b;
  8293.   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
  8294. }
  8295.  
  8296. // This prototype is deprecated.
  8297. static inline __ATTRS_o_ai __vector unsigned int
  8298. vec_min(__vector __bool int __a, __vector unsigned int __b) {
  8299.   __vector unsigned int __ac = (__vector unsigned int)__a;
  8300.   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
  8301. }
  8302.  
  8303. static inline __ATTRS_o_ai __vector signed long long
  8304. vec_min(__vector signed long long __a, __vector signed long long __b) {
  8305.   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
  8306. }
  8307.  
  8308. // This prototype is deprecated.
  8309. static inline __ATTRS_o_ai __vector signed long long
  8310. vec_min(__vector signed long long __a, __vector __bool long long __b) {
  8311.   __vector signed long long __bc = (__vector signed long long)__b;
  8312.   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
  8313. }
  8314.  
  8315. // This prototype is deprecated.
  8316. static inline __ATTRS_o_ai __vector signed long long
  8317. vec_min(__vector __bool long long __a, __vector signed long long __b) {
  8318.   __vector signed long long __ac = (__vector signed long long)__a;
  8319.   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
  8320. }
  8321.  
  8322. static inline __ATTRS_o_ai __vector unsigned long long
  8323. vec_min(__vector unsigned long long __a, __vector unsigned long long __b) {
  8324.   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
  8325. }
  8326.  
  8327. // This prototype is deprecated.
  8328. static inline __ATTRS_o_ai __vector unsigned long long
  8329. vec_min(__vector unsigned long long __a, __vector __bool long long __b) {
  8330.   __vector unsigned long long __bc = (__vector unsigned long long)__b;
  8331.   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
  8332. }
  8333.  
  8334. // This prototype is deprecated.
  8335. static inline __ATTRS_o_ai __vector unsigned long long
  8336. vec_min(__vector __bool long long __a, __vector unsigned long long __b) {
  8337.   __vector unsigned long long __ac = (__vector unsigned long long)__a;
  8338.   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
  8339. }
  8340.  
  8341. #if __ARCH__ >= 12
  8342. static inline __ATTRS_o_ai __vector float
  8343. vec_min(__vector float __a, __vector float __b) {
  8344.   return __builtin_s390_vfminsb(__a, __b, 0);
  8345. }
  8346. #endif
  8347.  
  8348. static inline __ATTRS_o_ai __vector double
  8349. vec_min(__vector double __a, __vector double __b) {
  8350. #if __ARCH__ >= 12
  8351.   return __builtin_s390_vfmindb(__a, __b, 0);
  8352. #else
  8353.   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
  8354. #endif
  8355. }
  8356.  
  8357. /*-- vec_add_u128 -----------------------------------------------------------*/
  8358.  
  8359. static inline __ATTRS_ai __vector unsigned char
  8360. vec_add_u128(__vector unsigned char __a, __vector unsigned char __b) {
  8361.   return __builtin_s390_vaq(__a, __b);
  8362. }
  8363.  
  8364. /*-- vec_addc ---------------------------------------------------------------*/
  8365.  
  8366. static inline __ATTRS_o_ai __vector unsigned char
  8367. vec_addc(__vector unsigned char __a, __vector unsigned char __b) {
  8368.   return __builtin_s390_vaccb(__a, __b);
  8369. }
  8370.  
  8371. static inline __ATTRS_o_ai __vector unsigned short
  8372. vec_addc(__vector unsigned short __a, __vector unsigned short __b) {
  8373.   return __builtin_s390_vacch(__a, __b);
  8374. }
  8375.  
  8376. static inline __ATTRS_o_ai __vector unsigned int
  8377. vec_addc(__vector unsigned int __a, __vector unsigned int __b) {
  8378.   return __builtin_s390_vaccf(__a, __b);
  8379. }
  8380.  
  8381. static inline __ATTRS_o_ai __vector unsigned long long
  8382. vec_addc(__vector unsigned long long __a, __vector unsigned long long __b) {
  8383.   return __builtin_s390_vaccg(__a, __b);
  8384. }
  8385.  
  8386. /*-- vec_addc_u128 ----------------------------------------------------------*/
  8387.  
  8388. static inline __ATTRS_ai __vector unsigned char
  8389. vec_addc_u128(__vector unsigned char __a, __vector unsigned char __b) {
  8390.   return __builtin_s390_vaccq(__a, __b);
  8391. }
  8392.  
  8393. /*-- vec_adde_u128 ----------------------------------------------------------*/
  8394.  
  8395. static inline __ATTRS_ai __vector unsigned char
  8396. vec_adde_u128(__vector unsigned char __a, __vector unsigned char __b,
  8397.               __vector unsigned char __c) {
  8398.   return __builtin_s390_vacq(__a, __b, __c);
  8399. }
  8400.  
  8401. /*-- vec_addec_u128 ---------------------------------------------------------*/
  8402.  
  8403. static inline __ATTRS_ai __vector unsigned char
  8404. vec_addec_u128(__vector unsigned char __a, __vector unsigned char __b,
  8405.                __vector unsigned char __c) {
  8406.   return __builtin_s390_vacccq(__a, __b, __c);
  8407. }
  8408.  
  8409. /*-- vec_avg ----------------------------------------------------------------*/
  8410.  
  8411. static inline __ATTRS_o_ai __vector signed char
  8412. vec_avg(__vector signed char __a, __vector signed char __b) {
  8413.   return __builtin_s390_vavgb(__a, __b);
  8414. }
  8415.  
  8416. static inline __ATTRS_o_ai __vector signed short
  8417. vec_avg(__vector signed short __a, __vector signed short __b) {
  8418.   return __builtin_s390_vavgh(__a, __b);
  8419. }
  8420.  
  8421. static inline __ATTRS_o_ai __vector signed int
  8422. vec_avg(__vector signed int __a, __vector signed int __b) {
  8423.   return __builtin_s390_vavgf(__a, __b);
  8424. }
  8425.  
  8426. static inline __ATTRS_o_ai __vector signed long long
  8427. vec_avg(__vector signed long long __a, __vector signed long long __b) {
  8428.   return __builtin_s390_vavgg(__a, __b);
  8429. }
  8430.  
  8431. static inline __ATTRS_o_ai __vector unsigned char
  8432. vec_avg(__vector unsigned char __a, __vector unsigned char __b) {
  8433.   return __builtin_s390_vavglb(__a, __b);
  8434. }
  8435.  
  8436. static inline __ATTRS_o_ai __vector unsigned short
  8437. vec_avg(__vector unsigned short __a, __vector unsigned short __b) {
  8438.   return __builtin_s390_vavglh(__a, __b);
  8439. }
  8440.  
  8441. static inline __ATTRS_o_ai __vector unsigned int
  8442. vec_avg(__vector unsigned int __a, __vector unsigned int __b) {
  8443.   return __builtin_s390_vavglf(__a, __b);
  8444. }
  8445.  
  8446. static inline __ATTRS_o_ai __vector unsigned long long
  8447. vec_avg(__vector unsigned long long __a, __vector unsigned long long __b) {
  8448.   return __builtin_s390_vavglg(__a, __b);
  8449. }
  8450.  
  8451. /*-- vec_checksum -----------------------------------------------------------*/
  8452.  
  8453. static inline __ATTRS_ai __vector unsigned int
  8454. vec_checksum(__vector unsigned int __a, __vector unsigned int __b) {
  8455.   return __builtin_s390_vcksm(__a, __b);
  8456. }
  8457.  
  8458. /*-- vec_gfmsum -------------------------------------------------------------*/
  8459.  
  8460. static inline __ATTRS_o_ai __vector unsigned short
  8461. vec_gfmsum(__vector unsigned char __a, __vector unsigned char __b) {
  8462.   return __builtin_s390_vgfmb(__a, __b);
  8463. }
  8464.  
  8465. static inline __ATTRS_o_ai __vector unsigned int
  8466. vec_gfmsum(__vector unsigned short __a, __vector unsigned short __b) {
  8467.   return __builtin_s390_vgfmh(__a, __b);
  8468. }
  8469.  
  8470. static inline __ATTRS_o_ai __vector unsigned long long
  8471. vec_gfmsum(__vector unsigned int __a, __vector unsigned int __b) {
  8472.   return __builtin_s390_vgfmf(__a, __b);
  8473. }
  8474.  
  8475. /*-- vec_gfmsum_128 ---------------------------------------------------------*/
  8476.  
  8477. static inline __ATTRS_o_ai __vector unsigned char
  8478. vec_gfmsum_128(__vector unsigned long long __a,
  8479.                __vector unsigned long long __b) {
  8480.   return __builtin_s390_vgfmg(__a, __b);
  8481. }
  8482.  
  8483. /*-- vec_gfmsum_accum -------------------------------------------------------*/
  8484.  
  8485. static inline __ATTRS_o_ai __vector unsigned short
  8486. vec_gfmsum_accum(__vector unsigned char __a, __vector unsigned char __b,
  8487.                  __vector unsigned short __c) {
  8488.   return __builtin_s390_vgfmab(__a, __b, __c);
  8489. }
  8490.  
  8491. static inline __ATTRS_o_ai __vector unsigned int
  8492. vec_gfmsum_accum(__vector unsigned short __a, __vector unsigned short __b,
  8493.                  __vector unsigned int __c) {
  8494.   return __builtin_s390_vgfmah(__a, __b, __c);
  8495. }
  8496.  
  8497. static inline __ATTRS_o_ai __vector unsigned long long
  8498. vec_gfmsum_accum(__vector unsigned int __a, __vector unsigned int __b,
  8499.                  __vector unsigned long long __c) {
  8500.   return __builtin_s390_vgfmaf(__a, __b, __c);
  8501. }
  8502.  
  8503. /*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
  8504.  
  8505. static inline __ATTRS_o_ai __vector unsigned char
  8506. vec_gfmsum_accum_128(__vector unsigned long long __a,
  8507.                      __vector unsigned long long __b,
  8508.                      __vector unsigned char __c) {
  8509.   return __builtin_s390_vgfmag(__a, __b, __c);
  8510. }
  8511.  
  8512. /*-- vec_mladd --------------------------------------------------------------*/
  8513.  
  8514. static inline __ATTRS_o_ai __vector signed char
  8515. vec_mladd(__vector signed char __a, __vector signed char __b,
  8516.           __vector signed char __c) {
  8517.   return __a * __b + __c;
  8518. }
  8519.  
  8520. static inline __ATTRS_o_ai __vector signed char
  8521. vec_mladd(__vector unsigned char __a, __vector signed char __b,
  8522.           __vector signed char __c) {
  8523.   return (__vector signed char)__a * __b + __c;
  8524. }
  8525.  
  8526. static inline __ATTRS_o_ai __vector signed char
  8527. vec_mladd(__vector signed char __a, __vector unsigned char __b,
  8528.           __vector unsigned char __c) {
  8529.   return __a * (__vector signed char)__b + (__vector signed char)__c;
  8530. }
  8531.  
  8532. static inline __ATTRS_o_ai __vector unsigned char
  8533. vec_mladd(__vector unsigned char __a, __vector unsigned char __b,
  8534.           __vector unsigned char __c) {
  8535.   return __a * __b + __c;
  8536. }
  8537.  
  8538. static inline __ATTRS_o_ai __vector signed short
  8539. vec_mladd(__vector signed short __a, __vector signed short __b,
  8540.           __vector signed short __c) {
  8541.   return __a * __b + __c;
  8542. }
  8543.  
  8544. static inline __ATTRS_o_ai __vector signed short
  8545. vec_mladd(__vector unsigned short __a, __vector signed short __b,
  8546.           __vector signed short __c) {
  8547.   return (__vector signed short)__a * __b + __c;
  8548. }
  8549.  
  8550. static inline __ATTRS_o_ai __vector signed short
  8551. vec_mladd(__vector signed short __a, __vector unsigned short __b,
  8552.           __vector unsigned short __c) {
  8553.   return __a * (__vector signed short)__b + (__vector signed short)__c;
  8554. }
  8555.  
  8556. static inline __ATTRS_o_ai __vector unsigned short
  8557. vec_mladd(__vector unsigned short __a, __vector unsigned short __b,
  8558.           __vector unsigned short __c) {
  8559.   return __a * __b + __c;
  8560. }
  8561.  
  8562. static inline __ATTRS_o_ai __vector signed int
  8563. vec_mladd(__vector signed int __a, __vector signed int __b,
  8564.           __vector signed int __c) {
  8565.   return __a * __b + __c;
  8566. }
  8567.  
  8568. static inline __ATTRS_o_ai __vector signed int
  8569. vec_mladd(__vector unsigned int __a, __vector signed int __b,
  8570.           __vector signed int __c) {
  8571.   return (__vector signed int)__a * __b + __c;
  8572. }
  8573.  
  8574. static inline __ATTRS_o_ai __vector signed int
  8575. vec_mladd(__vector signed int __a, __vector unsigned int __b,
  8576.           __vector unsigned int __c) {
  8577.   return __a * (__vector signed int)__b + (__vector signed int)__c;
  8578. }
  8579.  
  8580. static inline __ATTRS_o_ai __vector unsigned int
  8581. vec_mladd(__vector unsigned int __a, __vector unsigned int __b,
  8582.           __vector unsigned int __c) {
  8583.   return __a * __b + __c;
  8584. }
  8585.  
  8586. /*-- vec_mhadd --------------------------------------------------------------*/
  8587.  
  8588. static inline __ATTRS_o_ai __vector signed char
  8589. vec_mhadd(__vector signed char __a, __vector signed char __b,
  8590.           __vector signed char __c) {
  8591.   return __builtin_s390_vmahb(__a, __b, __c);
  8592. }
  8593.  
  8594. static inline __ATTRS_o_ai __vector unsigned char
  8595. vec_mhadd(__vector unsigned char __a, __vector unsigned char __b,
  8596.           __vector unsigned char __c) {
  8597.   return __builtin_s390_vmalhb(__a, __b, __c);
  8598. }
  8599.  
  8600. static inline __ATTRS_o_ai __vector signed short
  8601. vec_mhadd(__vector signed short __a, __vector signed short __b,
  8602.           __vector signed short __c) {
  8603.   return __builtin_s390_vmahh(__a, __b, __c);
  8604. }
  8605.  
  8606. static inline __ATTRS_o_ai __vector unsigned short
  8607. vec_mhadd(__vector unsigned short __a, __vector unsigned short __b,
  8608.           __vector unsigned short __c) {
  8609.   return __builtin_s390_vmalhh(__a, __b, __c);
  8610. }
  8611.  
  8612. static inline __ATTRS_o_ai __vector signed int
  8613. vec_mhadd(__vector signed int __a, __vector signed int __b,
  8614.           __vector signed int __c) {
  8615.   return __builtin_s390_vmahf(__a, __b, __c);
  8616. }
  8617.  
  8618. static inline __ATTRS_o_ai __vector unsigned int
  8619. vec_mhadd(__vector unsigned int __a, __vector unsigned int __b,
  8620.           __vector unsigned int __c) {
  8621.   return __builtin_s390_vmalhf(__a, __b, __c);
  8622. }
  8623.  
  8624. /*-- vec_meadd --------------------------------------------------------------*/
  8625.  
  8626. static inline __ATTRS_o_ai __vector signed short
  8627. vec_meadd(__vector signed char __a, __vector signed char __b,
  8628.           __vector signed short __c) {
  8629.   return __builtin_s390_vmaeb(__a, __b, __c);
  8630. }
  8631.  
  8632. static inline __ATTRS_o_ai __vector unsigned short
  8633. vec_meadd(__vector unsigned char __a, __vector unsigned char __b,
  8634.           __vector unsigned short __c) {
  8635.   return __builtin_s390_vmaleb(__a, __b, __c);
  8636. }
  8637.  
  8638. static inline __ATTRS_o_ai __vector signed int
  8639. vec_meadd(__vector signed short __a, __vector signed short __b,
  8640.           __vector signed int __c) {
  8641.   return __builtin_s390_vmaeh(__a, __b, __c);
  8642. }
  8643.  
  8644. static inline __ATTRS_o_ai __vector unsigned int
  8645. vec_meadd(__vector unsigned short __a, __vector unsigned short __b,
  8646.           __vector unsigned int __c) {
  8647.   return __builtin_s390_vmaleh(__a, __b, __c);
  8648. }
  8649.  
  8650. static inline __ATTRS_o_ai __vector signed long long
  8651. vec_meadd(__vector signed int __a, __vector signed int __b,
  8652.           __vector signed long long __c) {
  8653.   return __builtin_s390_vmaef(__a, __b, __c);
  8654. }
  8655.  
  8656. static inline __ATTRS_o_ai __vector unsigned long long
  8657. vec_meadd(__vector unsigned int __a, __vector unsigned int __b,
  8658.           __vector unsigned long long __c) {
  8659.   return __builtin_s390_vmalef(__a, __b, __c);
  8660. }
  8661.  
  8662. /*-- vec_moadd --------------------------------------------------------------*/
  8663.  
  8664. static inline __ATTRS_o_ai __vector signed short
  8665. vec_moadd(__vector signed char __a, __vector signed char __b,
  8666.           __vector signed short __c) {
  8667.   return __builtin_s390_vmaob(__a, __b, __c);
  8668. }
  8669.  
  8670. static inline __ATTRS_o_ai __vector unsigned short
  8671. vec_moadd(__vector unsigned char __a, __vector unsigned char __b,
  8672.           __vector unsigned short __c) {
  8673.   return __builtin_s390_vmalob(__a, __b, __c);
  8674. }
  8675.  
  8676. static inline __ATTRS_o_ai __vector signed int
  8677. vec_moadd(__vector signed short __a, __vector signed short __b,
  8678.           __vector signed int __c) {
  8679.   return __builtin_s390_vmaoh(__a, __b, __c);
  8680. }
  8681.  
  8682. static inline __ATTRS_o_ai __vector unsigned int
  8683. vec_moadd(__vector unsigned short __a, __vector unsigned short __b,
  8684.           __vector unsigned int __c) {
  8685.   return __builtin_s390_vmaloh(__a, __b, __c);
  8686. }
  8687.  
  8688. static inline __ATTRS_o_ai __vector signed long long
  8689. vec_moadd(__vector signed int __a, __vector signed int __b,
  8690.           __vector signed long long __c) {
  8691.   return __builtin_s390_vmaof(__a, __b, __c);
  8692. }
  8693.  
  8694. static inline __ATTRS_o_ai __vector unsigned long long
  8695. vec_moadd(__vector unsigned int __a, __vector unsigned int __b,
  8696.           __vector unsigned long long __c) {
  8697.   return __builtin_s390_vmalof(__a, __b, __c);
  8698. }
  8699.  
  8700. /*-- vec_mulh ---------------------------------------------------------------*/
  8701.  
  8702. static inline __ATTRS_o_ai __vector signed char
  8703. vec_mulh(__vector signed char __a, __vector signed char __b) {
  8704.   return __builtin_s390_vmhb(__a, __b);
  8705. }
  8706.  
  8707. static inline __ATTRS_o_ai __vector unsigned char
  8708. vec_mulh(__vector unsigned char __a, __vector unsigned char __b) {
  8709.   return __builtin_s390_vmlhb(__a, __b);
  8710. }
  8711.  
  8712. static inline __ATTRS_o_ai __vector signed short
  8713. vec_mulh(__vector signed short __a, __vector signed short __b) {
  8714.   return __builtin_s390_vmhh(__a, __b);
  8715. }
  8716.  
  8717. static inline __ATTRS_o_ai __vector unsigned short
  8718. vec_mulh(__vector unsigned short __a, __vector unsigned short __b) {
  8719.   return __builtin_s390_vmlhh(__a, __b);
  8720. }
  8721.  
  8722. static inline __ATTRS_o_ai __vector signed int
  8723. vec_mulh(__vector signed int __a, __vector signed int __b) {
  8724.   return __builtin_s390_vmhf(__a, __b);
  8725. }
  8726.  
  8727. static inline __ATTRS_o_ai __vector unsigned int
  8728. vec_mulh(__vector unsigned int __a, __vector unsigned int __b) {
  8729.   return __builtin_s390_vmlhf(__a, __b);
  8730. }
  8731.  
  8732. /*-- vec_mule ---------------------------------------------------------------*/
  8733.  
  8734. static inline __ATTRS_o_ai __vector signed short
  8735. vec_mule(__vector signed char __a, __vector signed char __b) {
  8736.   return __builtin_s390_vmeb(__a, __b);
  8737. }
  8738.  
  8739. static inline __ATTRS_o_ai __vector unsigned short
  8740. vec_mule(__vector unsigned char __a, __vector unsigned char __b) {
  8741.   return __builtin_s390_vmleb(__a, __b);
  8742. }
  8743.  
  8744. static inline __ATTRS_o_ai __vector signed int
  8745. vec_mule(__vector signed short __a, __vector signed short __b) {
  8746.   return __builtin_s390_vmeh(__a, __b);
  8747. }
  8748.  
  8749. static inline __ATTRS_o_ai __vector unsigned int
  8750. vec_mule(__vector unsigned short __a, __vector unsigned short __b) {
  8751.   return __builtin_s390_vmleh(__a, __b);
  8752. }
  8753.  
  8754. static inline __ATTRS_o_ai __vector signed long long
  8755. vec_mule(__vector signed int __a, __vector signed int __b) {
  8756.   return __builtin_s390_vmef(__a, __b);
  8757. }
  8758.  
  8759. static inline __ATTRS_o_ai __vector unsigned long long
  8760. vec_mule(__vector unsigned int __a, __vector unsigned int __b) {
  8761.   return __builtin_s390_vmlef(__a, __b);
  8762. }
  8763.  
  8764. /*-- vec_mulo ---------------------------------------------------------------*/
  8765.  
  8766. static inline __ATTRS_o_ai __vector signed short
  8767. vec_mulo(__vector signed char __a, __vector signed char __b) {
  8768.   return __builtin_s390_vmob(__a, __b);
  8769. }
  8770.  
  8771. static inline __ATTRS_o_ai __vector unsigned short
  8772. vec_mulo(__vector unsigned char __a, __vector unsigned char __b) {
  8773.   return __builtin_s390_vmlob(__a, __b);
  8774. }
  8775.  
  8776. static inline __ATTRS_o_ai __vector signed int
  8777. vec_mulo(__vector signed short __a, __vector signed short __b) {
  8778.   return __builtin_s390_vmoh(__a, __b);
  8779. }
  8780.  
  8781. static inline __ATTRS_o_ai __vector unsigned int
  8782. vec_mulo(__vector unsigned short __a, __vector unsigned short __b) {
  8783.   return __builtin_s390_vmloh(__a, __b);
  8784. }
  8785.  
  8786. static inline __ATTRS_o_ai __vector signed long long
  8787. vec_mulo(__vector signed int __a, __vector signed int __b) {
  8788.   return __builtin_s390_vmof(__a, __b);
  8789. }
  8790.  
  8791. static inline __ATTRS_o_ai __vector unsigned long long
  8792. vec_mulo(__vector unsigned int __a, __vector unsigned int __b) {
  8793.   return __builtin_s390_vmlof(__a, __b);
  8794. }
  8795.  
  8796. /*-- vec_msum_u128 ----------------------------------------------------------*/
  8797.  
  8798. #if __ARCH__ >= 12
  8799. #define vec_msum_u128(X, Y, Z, W) \
  8800.   ((__vector unsigned char)__builtin_s390_vmslg((X), (Y), (Z), (W)));
  8801. #endif
  8802.  
  8803. /*-- vec_sub_u128 -----------------------------------------------------------*/
  8804.  
  8805. static inline __ATTRS_ai __vector unsigned char
  8806. vec_sub_u128(__vector unsigned char __a, __vector unsigned char __b) {
  8807.   return __builtin_s390_vsq(__a, __b);
  8808. }
  8809.  
  8810. /*-- vec_subc ---------------------------------------------------------------*/
  8811.  
  8812. static inline __ATTRS_o_ai __vector unsigned char
  8813. vec_subc(__vector unsigned char __a, __vector unsigned char __b) {
  8814.   return __builtin_s390_vscbib(__a, __b);
  8815. }
  8816.  
  8817. static inline __ATTRS_o_ai __vector unsigned short
  8818. vec_subc(__vector unsigned short __a, __vector unsigned short __b) {
  8819.   return __builtin_s390_vscbih(__a, __b);
  8820. }
  8821.  
  8822. static inline __ATTRS_o_ai __vector unsigned int
  8823. vec_subc(__vector unsigned int __a, __vector unsigned int __b) {
  8824.   return __builtin_s390_vscbif(__a, __b);
  8825. }
  8826.  
  8827. static inline __ATTRS_o_ai __vector unsigned long long
  8828. vec_subc(__vector unsigned long long __a, __vector unsigned long long __b) {
  8829.   return __builtin_s390_vscbig(__a, __b);
  8830. }
  8831.  
  8832. /*-- vec_subc_u128 ----------------------------------------------------------*/
  8833.  
  8834. static inline __ATTRS_ai __vector unsigned char
  8835. vec_subc_u128(__vector unsigned char __a, __vector unsigned char __b) {
  8836.   return __builtin_s390_vscbiq(__a, __b);
  8837. }
  8838.  
  8839. /*-- vec_sube_u128 ----------------------------------------------------------*/
  8840.  
  8841. static inline __ATTRS_ai __vector unsigned char
  8842. vec_sube_u128(__vector unsigned char __a, __vector unsigned char __b,
  8843.               __vector unsigned char __c) {
  8844.   return __builtin_s390_vsbiq(__a, __b, __c);
  8845. }
  8846.  
  8847. /*-- vec_subec_u128 ---------------------------------------------------------*/
  8848.  
  8849. static inline __ATTRS_ai __vector unsigned char
  8850. vec_subec_u128(__vector unsigned char __a, __vector unsigned char __b,
  8851.                __vector unsigned char __c) {
  8852.   return __builtin_s390_vsbcbiq(__a, __b, __c);
  8853. }
  8854.  
  8855. /*-- vec_sum2 ---------------------------------------------------------------*/
  8856.  
  8857. static inline __ATTRS_o_ai __vector unsigned long long
  8858. vec_sum2(__vector unsigned short __a, __vector unsigned short __b) {
  8859.   return __builtin_s390_vsumgh(__a, __b);
  8860. }
  8861.  
  8862. static inline __ATTRS_o_ai __vector unsigned long long
  8863. vec_sum2(__vector unsigned int __a, __vector unsigned int __b) {
  8864.   return __builtin_s390_vsumgf(__a, __b);
  8865. }
  8866.  
  8867. /*-- vec_sum_u128 -----------------------------------------------------------*/
  8868.  
  8869. static inline __ATTRS_o_ai __vector unsigned char
  8870. vec_sum_u128(__vector unsigned int __a, __vector unsigned int __b) {
  8871.   return __builtin_s390_vsumqf(__a, __b);
  8872. }
  8873.  
  8874. static inline __ATTRS_o_ai __vector unsigned char
  8875. vec_sum_u128(__vector unsigned long long __a, __vector unsigned long long __b) {
  8876.   return __builtin_s390_vsumqg(__a, __b);
  8877. }
  8878.  
  8879. /*-- vec_sum4 ---------------------------------------------------------------*/
  8880.  
  8881. static inline __ATTRS_o_ai __vector unsigned int
  8882. vec_sum4(__vector unsigned char __a, __vector unsigned char __b) {
  8883.   return __builtin_s390_vsumb(__a, __b);
  8884. }
  8885.  
  8886. static inline __ATTRS_o_ai __vector unsigned int
  8887. vec_sum4(__vector unsigned short __a, __vector unsigned short __b) {
  8888.   return __builtin_s390_vsumh(__a, __b);
  8889. }
  8890.  
  8891. /*-- vec_test_mask ----------------------------------------------------------*/
  8892.  
  8893. static inline __ATTRS_o_ai int
  8894. vec_test_mask(__vector signed char __a, __vector unsigned char __b) {
  8895.   return __builtin_s390_vtm((__vector unsigned char)__a,
  8896.                             (__vector unsigned char)__b);
  8897. }
  8898.  
  8899. static inline __ATTRS_o_ai int
  8900. vec_test_mask(__vector unsigned char __a, __vector unsigned char __b) {
  8901.   return __builtin_s390_vtm(__a, __b);
  8902. }
  8903.  
  8904. static inline __ATTRS_o_ai int
  8905. vec_test_mask(__vector signed short __a, __vector unsigned short __b) {
  8906.   return __builtin_s390_vtm((__vector unsigned char)__a,
  8907.                             (__vector unsigned char)__b);
  8908. }
  8909.  
  8910. static inline __ATTRS_o_ai int
  8911. vec_test_mask(__vector unsigned short __a, __vector unsigned short __b) {
  8912.   return __builtin_s390_vtm((__vector unsigned char)__a,
  8913.                             (__vector unsigned char)__b);
  8914. }
  8915.  
  8916. static inline __ATTRS_o_ai int
  8917. vec_test_mask(__vector signed int __a, __vector unsigned int __b) {
  8918.   return __builtin_s390_vtm((__vector unsigned char)__a,
  8919.                             (__vector unsigned char)__b);
  8920. }
  8921.  
  8922. static inline __ATTRS_o_ai int
  8923. vec_test_mask(__vector unsigned int __a, __vector unsigned int __b) {
  8924.   return __builtin_s390_vtm((__vector unsigned char)__a,
  8925.                             (__vector unsigned char)__b);
  8926. }
  8927.  
  8928. static inline __ATTRS_o_ai int
  8929. vec_test_mask(__vector signed long long __a, __vector unsigned long long __b) {
  8930.   return __builtin_s390_vtm((__vector unsigned char)__a,
  8931.                             (__vector unsigned char)__b);
  8932. }
  8933.  
  8934. static inline __ATTRS_o_ai int
  8935. vec_test_mask(__vector unsigned long long __a,
  8936.               __vector unsigned long long __b) {
  8937.   return __builtin_s390_vtm((__vector unsigned char)__a,
  8938.                             (__vector unsigned char)__b);
  8939. }
  8940.  
  8941. #if __ARCH__ >= 12
  8942. static inline __ATTRS_o_ai int
  8943. vec_test_mask(__vector float __a, __vector unsigned int __b) {
  8944.   return __builtin_s390_vtm((__vector unsigned char)__a,
  8945.                             (__vector unsigned char)__b);
  8946. }
  8947. #endif
  8948.  
  8949. static inline __ATTRS_o_ai int
  8950. vec_test_mask(__vector double __a, __vector unsigned long long __b) {
  8951.   return __builtin_s390_vtm((__vector unsigned char)__a,
  8952.                             (__vector unsigned char)__b);
  8953. }
  8954.  
  8955. /*-- vec_madd ---------------------------------------------------------------*/
  8956.  
  8957. #if __ARCH__ >= 12
  8958. static inline __ATTRS_o_ai __vector float
  8959. vec_madd(__vector float __a, __vector float __b, __vector float __c) {
  8960.   return __builtin_s390_vfmasb(__a, __b, __c);
  8961. }
  8962. #endif
  8963.  
  8964. static inline __ATTRS_o_ai __vector double
  8965. vec_madd(__vector double __a, __vector double __b, __vector double __c) {
  8966.   return __builtin_s390_vfmadb(__a, __b, __c);
  8967. }
  8968.  
  8969. /*-- vec_msub ---------------------------------------------------------------*/
  8970.  
  8971. #if __ARCH__ >= 12
  8972. static inline __ATTRS_o_ai __vector float
  8973. vec_msub(__vector float __a, __vector float __b, __vector float __c) {
  8974.   return __builtin_s390_vfmssb(__a, __b, __c);
  8975. }
  8976. #endif
  8977.  
  8978. static inline __ATTRS_o_ai __vector double
  8979. vec_msub(__vector double __a, __vector double __b, __vector double __c) {
  8980.   return __builtin_s390_vfmsdb(__a, __b, __c);
  8981. }
  8982.  
  8983. /*-- vec_nmadd ---------------------------------------------------------------*/
  8984.  
  8985. #if __ARCH__ >= 12
  8986. static inline __ATTRS_o_ai __vector float
  8987. vec_nmadd(__vector float __a, __vector float __b, __vector float __c) {
  8988.   return __builtin_s390_vfnmasb(__a, __b, __c);
  8989. }
  8990.  
  8991. static inline __ATTRS_o_ai __vector double
  8992. vec_nmadd(__vector double __a, __vector double __b, __vector double __c) {
  8993.   return __builtin_s390_vfnmadb(__a, __b, __c);
  8994. }
  8995. #endif
  8996.  
  8997. /*-- vec_nmsub ---------------------------------------------------------------*/
  8998.  
  8999. #if __ARCH__ >= 12
  9000. static inline __ATTRS_o_ai __vector float
  9001. vec_nmsub(__vector float __a, __vector float __b, __vector float __c) {
  9002.   return __builtin_s390_vfnmssb(__a, __b, __c);
  9003. }
  9004.  
  9005. static inline __ATTRS_o_ai __vector double
  9006. vec_nmsub(__vector double __a, __vector double __b, __vector double __c) {
  9007.   return __builtin_s390_vfnmsdb(__a, __b, __c);
  9008. }
  9009. #endif
  9010.  
  9011. /*-- vec_sqrt ---------------------------------------------------------------*/
  9012.  
  9013. #if __ARCH__ >= 12
  9014. static inline __ATTRS_o_ai __vector float
  9015. vec_sqrt(__vector float __a) {
  9016.   return __builtin_s390_vfsqsb(__a);
  9017. }
  9018. #endif
  9019.  
  9020. static inline __ATTRS_o_ai __vector double
  9021. vec_sqrt(__vector double __a) {
  9022.   return __builtin_s390_vfsqdb(__a);
  9023. }
  9024.  
  9025. /*-- vec_ld2f ---------------------------------------------------------------*/
  9026.  
  9027. // This prototype is deprecated.
  9028. static inline __ATTRS_ai __vector double
  9029. vec_ld2f(const float *__ptr) {
  9030.   typedef float __v2f32 __attribute__((__vector_size__(8)));
  9031.   return __builtin_convertvector(*(const __v2f32 *)__ptr, __vector double);
  9032. }
  9033.  
  9034. /*-- vec_st2f ---------------------------------------------------------------*/
  9035.  
  9036. // This prototype is deprecated.
  9037. static inline __ATTRS_ai void
  9038. vec_st2f(__vector double __a, float *__ptr) {
  9039.   typedef float __v2f32 __attribute__((__vector_size__(8)));
  9040.   *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);
  9041. }
  9042.  
  9043. /*-- vec_ctd ----------------------------------------------------------------*/
  9044.  
  9045. // This prototype is deprecated.
  9046. static inline __ATTRS_o_ai __vector double
  9047. vec_ctd(__vector signed long long __a, int __b)
  9048.   __constant_range(__b, 0, 31) {
  9049.   __vector double __conv = __builtin_convertvector(__a, __vector double);
  9050.   __conv *= ((__vector double)(__vector unsigned long long)
  9051.              ((0x3ffULL - __b) << 52));
  9052.   return __conv;
  9053. }
  9054.  
  9055. // This prototype is deprecated.
  9056. static inline __ATTRS_o_ai __vector double
  9057. vec_ctd(__vector unsigned long long __a, int __b)
  9058.   __constant_range(__b, 0, 31) {
  9059.   __vector double __conv = __builtin_convertvector(__a, __vector double);
  9060.   __conv *= ((__vector double)(__vector unsigned long long)
  9061.              ((0x3ffULL - __b) << 52));
  9062.   return __conv;
  9063. }
  9064.  
  9065. /*-- vec_ctsl ---------------------------------------------------------------*/
  9066.  
  9067. // This prototype is deprecated.
  9068. static inline __ATTRS_o_ai __vector signed long long
  9069. vec_ctsl(__vector double __a, int __b)
  9070.   __constant_range(__b, 0, 31) {
  9071.   __a *= ((__vector double)(__vector unsigned long long)
  9072.           ((0x3ffULL + __b) << 52));
  9073.   return __builtin_convertvector(__a, __vector signed long long);
  9074. }
  9075.  
  9076. /*-- vec_ctul ---------------------------------------------------------------*/
  9077.  
  9078. // This prototype is deprecated.
  9079. static inline __ATTRS_o_ai __vector unsigned long long
  9080. vec_ctul(__vector double __a, int __b)
  9081.   __constant_range(__b, 0, 31) {
  9082.   __a *= ((__vector double)(__vector unsigned long long)
  9083.           ((0x3ffULL + __b) << 52));
  9084.   return __builtin_convertvector(__a, __vector unsigned long long);
  9085. }
  9086.  
  9087. /*-- vec_doublee ------------------------------------------------------------*/
  9088.  
  9089. #if __ARCH__ >= 12
  9090. static inline __ATTRS_ai __vector double
  9091. vec_doublee(__vector float __a) {
  9092.   typedef float __v2f32 __attribute__((__vector_size__(8)));
  9093.   __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2);
  9094.   return __builtin_convertvector(__pack, __vector double);
  9095. }
  9096. #endif
  9097.  
  9098. /*-- vec_floate -------------------------------------------------------------*/
  9099.  
  9100. #if __ARCH__ >= 12
  9101. static inline __ATTRS_ai __vector float
  9102. vec_floate(__vector double __a) {
  9103.   typedef float __v2f32 __attribute__((__vector_size__(8)));
  9104.   __v2f32 __pack = __builtin_convertvector(__a, __v2f32);
  9105.   return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1);
  9106. }
  9107. #endif
  9108.  
  9109. /*-- vec_double -------------------------------------------------------------*/
  9110.  
  9111. static inline __ATTRS_o_ai __vector double
  9112. vec_double(__vector signed long long __a) {
  9113.   return __builtin_convertvector(__a, __vector double);
  9114. }
  9115.  
  9116. static inline __ATTRS_o_ai __vector double
  9117. vec_double(__vector unsigned long long __a) {
  9118.   return __builtin_convertvector(__a, __vector double);
  9119. }
  9120.  
  9121. /*-- vec_float --------------------------------------------------------------*/
  9122.  
  9123. #if __ARCH__ >= 13
  9124.  
  9125. static inline __ATTRS_o_ai __vector float
  9126. vec_float(__vector signed int __a) {
  9127.   return __builtin_convertvector(__a, __vector float);
  9128. }
  9129.  
  9130. static inline __ATTRS_o_ai __vector float
  9131. vec_float(__vector unsigned int __a) {
  9132.   return __builtin_convertvector(__a, __vector float);
  9133. }
  9134.  
  9135. #endif
  9136.  
  9137. /*-- vec_signed -------------------------------------------------------------*/
  9138.  
  9139. static inline __ATTRS_o_ai __vector signed long long
  9140. vec_signed(__vector double __a) {
  9141.   return __builtin_convertvector(__a, __vector signed long long);
  9142. }
  9143.  
  9144. #if __ARCH__ >= 13
  9145. static inline __ATTRS_o_ai __vector signed int
  9146. vec_signed(__vector float __a) {
  9147.   return __builtin_convertvector(__a, __vector signed int);
  9148. }
  9149. #endif
  9150.  
  9151. /*-- vec_unsigned -----------------------------------------------------------*/
  9152.  
  9153. static inline __ATTRS_o_ai __vector unsigned long long
  9154. vec_unsigned(__vector double __a) {
  9155.   return __builtin_convertvector(__a, __vector unsigned long long);
  9156. }
  9157.  
  9158. #if __ARCH__ >= 13
  9159. static inline __ATTRS_o_ai __vector unsigned int
  9160. vec_unsigned(__vector float __a) {
  9161.   return __builtin_convertvector(__a, __vector unsigned int);
  9162. }
  9163. #endif
  9164.  
  9165. /*-- vec_roundp -------------------------------------------------------------*/
  9166.  
  9167. #if __ARCH__ >= 12
  9168. static inline __ATTRS_o_ai __vector float
  9169. vec_roundp(__vector float __a) {
  9170.   return __builtin_s390_vfisb(__a, 4, 6);
  9171. }
  9172. #endif
  9173.  
  9174. static inline __ATTRS_o_ai __vector double
  9175. vec_roundp(__vector double __a) {
  9176.   return __builtin_s390_vfidb(__a, 4, 6);
  9177. }
  9178.  
  9179. /*-- vec_ceil ---------------------------------------------------------------*/
  9180.  
  9181. #if __ARCH__ >= 12
  9182. static inline __ATTRS_o_ai __vector float
  9183. vec_ceil(__vector float __a) {
  9184.   // On this platform, vec_ceil never triggers the IEEE-inexact exception.
  9185.   return __builtin_s390_vfisb(__a, 4, 6);
  9186. }
  9187. #endif
  9188.  
  9189. static inline __ATTRS_o_ai __vector double
  9190. vec_ceil(__vector double __a) {
  9191.   // On this platform, vec_ceil never triggers the IEEE-inexact exception.
  9192.   return __builtin_s390_vfidb(__a, 4, 6);
  9193. }
  9194.  
  9195. /*-- vec_roundm -------------------------------------------------------------*/
  9196.  
  9197. #if __ARCH__ >= 12
  9198. static inline __ATTRS_o_ai __vector float
  9199. vec_roundm(__vector float __a) {
  9200.   return __builtin_s390_vfisb(__a, 4, 7);
  9201. }
  9202. #endif
  9203.  
  9204. static inline __ATTRS_o_ai __vector double
  9205. vec_roundm(__vector double __a) {
  9206.   return __builtin_s390_vfidb(__a, 4, 7);
  9207. }
  9208.  
  9209. /*-- vec_floor --------------------------------------------------------------*/
  9210.  
  9211. #if __ARCH__ >= 12
  9212. static inline __ATTRS_o_ai __vector float
  9213. vec_floor(__vector float __a) {
  9214.   // On this platform, vec_floor never triggers the IEEE-inexact exception.
  9215.   return __builtin_s390_vfisb(__a, 4, 7);
  9216. }
  9217. #endif
  9218.  
  9219. static inline __ATTRS_o_ai __vector double
  9220. vec_floor(__vector double __a) {
  9221.   // On this platform, vec_floor never triggers the IEEE-inexact exception.
  9222.   return __builtin_s390_vfidb(__a, 4, 7);
  9223. }
  9224.  
  9225. /*-- vec_roundz -------------------------------------------------------------*/
  9226.  
  9227. #if __ARCH__ >= 12
  9228. static inline __ATTRS_o_ai __vector float
  9229. vec_roundz(__vector float __a) {
  9230.   return __builtin_s390_vfisb(__a, 4, 5);
  9231. }
  9232. #endif
  9233.  
  9234. static inline __ATTRS_o_ai __vector double
  9235. vec_roundz(__vector double __a) {
  9236.   return __builtin_s390_vfidb(__a, 4, 5);
  9237. }
  9238.  
  9239. /*-- vec_trunc --------------------------------------------------------------*/
  9240.  
  9241. #if __ARCH__ >= 12
  9242. static inline __ATTRS_o_ai __vector float
  9243. vec_trunc(__vector float __a) {
  9244.   // On this platform, vec_trunc never triggers the IEEE-inexact exception.
  9245.   return __builtin_s390_vfisb(__a, 4, 5);
  9246. }
  9247. #endif
  9248.  
  9249. static inline __ATTRS_o_ai __vector double
  9250. vec_trunc(__vector double __a) {
  9251.   // On this platform, vec_trunc never triggers the IEEE-inexact exception.
  9252.   return __builtin_s390_vfidb(__a, 4, 5);
  9253. }
  9254.  
  9255. /*-- vec_roundc -------------------------------------------------------------*/
  9256.  
  9257. #if __ARCH__ >= 12
  9258. static inline __ATTRS_o_ai __vector float
  9259. vec_roundc(__vector float __a) {
  9260.   return __builtin_s390_vfisb(__a, 4, 0);
  9261. }
  9262. #endif
  9263.  
  9264. static inline __ATTRS_o_ai __vector double
  9265. vec_roundc(__vector double __a) {
  9266.   return __builtin_s390_vfidb(__a, 4, 0);
  9267. }
  9268.  
  9269. /*-- vec_rint ---------------------------------------------------------------*/
  9270.  
  9271. #if __ARCH__ >= 12
  9272. static inline __ATTRS_o_ai __vector float
  9273. vec_rint(__vector float __a) {
  9274.   // vec_rint may trigger the IEEE-inexact exception.
  9275.   return __builtin_s390_vfisb(__a, 0, 0);
  9276. }
  9277. #endif
  9278.  
  9279. static inline __ATTRS_o_ai __vector double
  9280. vec_rint(__vector double __a) {
  9281.   // vec_rint may trigger the IEEE-inexact exception.
  9282.   return __builtin_s390_vfidb(__a, 0, 0);
  9283. }
  9284.  
  9285. /*-- vec_round --------------------------------------------------------------*/
  9286.  
  9287. #if __ARCH__ >= 12
  9288. static inline __ATTRS_o_ai __vector float
  9289. vec_round(__vector float __a) {
  9290.   return __builtin_s390_vfisb(__a, 4, 4);
  9291. }
  9292. #endif
  9293.  
  9294. static inline __ATTRS_o_ai __vector double
  9295. vec_round(__vector double __a) {
  9296.   return __builtin_s390_vfidb(__a, 4, 4);
  9297. }
  9298.  
  9299. /*-- vec_fp_test_data_class -------------------------------------------------*/
  9300.  
  9301. #if __ARCH__ >= 12
  9302. extern __ATTRS_o __vector __bool int
  9303. vec_fp_test_data_class(__vector float __a, int __b, int *__c)
  9304.   __constant_range(__b, 0, 4095);
  9305.  
  9306. extern __ATTRS_o __vector __bool long long
  9307. vec_fp_test_data_class(__vector double __a, int __b, int *__c)
  9308.   __constant_range(__b, 0, 4095);
  9309.  
  9310. #define vec_fp_test_data_class(X, Y, Z) \
  9311.   ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \
  9312.    __extension__ ({ \
  9313.      __vector unsigned char __res; \
  9314.      __vector unsigned char __x = (__vector unsigned char)(X); \
  9315.      int *__z = (Z); \
  9316.      switch (sizeof ((X)[0])) { \
  9317.      case 4:  __res = (__vector unsigned char) \
  9318.                       __builtin_s390_vftcisb((__vector float)__x, (Y), __z); \
  9319.               break; \
  9320.      default: __res = (__vector unsigned char) \
  9321.                       __builtin_s390_vftcidb((__vector double)__x, (Y), __z); \
  9322.               break; \
  9323.      } __res; }))
  9324. #else
  9325. #define vec_fp_test_data_class(X, Y, Z) \
  9326.   ((__vector __bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
  9327. #endif
  9328.  
  9329. #define __VEC_CLASS_FP_ZERO_P (1 << 11)
  9330. #define __VEC_CLASS_FP_ZERO_N (1 << 10)
  9331. #define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N)
  9332. #define __VEC_CLASS_FP_NORMAL_P (1 << 9)
  9333. #define __VEC_CLASS_FP_NORMAL_N (1 << 8)
  9334. #define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \
  9335.                                __VEC_CLASS_FP_NORMAL_N)
  9336. #define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7)
  9337. #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6)
  9338. #define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
  9339.                                   __VEC_CLASS_FP_SUBNORMAL_N)
  9340. #define __VEC_CLASS_FP_INFINITY_P (1 << 5)
  9341. #define __VEC_CLASS_FP_INFINITY_N (1 << 4)
  9342. #define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \
  9343.                                  __VEC_CLASS_FP_INFINITY_N)
  9344. #define __VEC_CLASS_FP_QNAN_P (1 << 3)
  9345. #define __VEC_CLASS_FP_QNAN_N (1 << 2)
  9346. #define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N)
  9347. #define __VEC_CLASS_FP_SNAN_P (1 << 1)
  9348. #define __VEC_CLASS_FP_SNAN_N (1 << 0)
  9349. #define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N)
  9350. #define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN)
  9351. #define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \
  9352.                                    __VEC_CLASS_FP_SUBNORMAL | \
  9353.                                    __VEC_CLASS_FP_ZERO | \
  9354.                                    __VEC_CLASS_FP_INFINITY)
  9355.  
  9356. /*-- vec_extend_to_fp32_hi --------------------------------------------------*/
  9357.  
  9358. #if __ARCH__ >= 14
  9359. #define vec_extend_to_fp32_hi(X, W) \
  9360.   ((__vector float)__builtin_s390_vclfnhs((X), (W)));
  9361. #endif
  9362.  
  9363. /*-- vec_extend_to_fp32_hi --------------------------------------------------*/
  9364.  
  9365. #if __ARCH__ >= 14
  9366. #define vec_extend_to_fp32_lo(X, W) \
  9367.   ((__vector float)__builtin_s390_vclfnls((X), (W)));
  9368. #endif
  9369.  
  9370. /*-- vec_round_from_fp32 ----------------------------------------------------*/
  9371.  
  9372. #if __ARCH__ >= 14
  9373. #define vec_round_from_fp32(X, Y, W) \
  9374.   ((__vector unsigned short)__builtin_s390_vcrnfs((X), (Y), (W)));
  9375. #endif
  9376.  
  9377. /*-- vec_convert_to_fp16 ----------------------------------------------------*/
  9378.  
  9379. #if __ARCH__ >= 14
  9380. #define vec_convert_to_fp16(X, W) \
  9381.   ((__vector unsigned short)__builtin_s390_vcfn((X), (W)));
  9382. #endif
  9383.  
  9384. /*-- vec_convert_from_fp16 --------------------------------------------------*/
  9385.  
  9386. #if __ARCH__ >= 14
  9387. #define vec_convert_from_fp16(X, W) \
  9388.   ((__vector unsigned short)__builtin_s390_vcnf((X), (W)));
  9389. #endif
  9390.  
  9391. /*-- vec_cp_until_zero ------------------------------------------------------*/
  9392.  
  9393. static inline __ATTRS_o_ai __vector signed char
  9394. vec_cp_until_zero(__vector signed char __a) {
  9395.   return ((__vector signed char)
  9396.           __builtin_s390_vistrb((__vector unsigned char)__a));
  9397. }
  9398.  
  9399. static inline __ATTRS_o_ai __vector __bool char
  9400. vec_cp_until_zero(__vector __bool char __a) {
  9401.   return ((__vector __bool char)
  9402.           __builtin_s390_vistrb((__vector unsigned char)__a));
  9403. }
  9404.  
  9405. static inline __ATTRS_o_ai __vector unsigned char
  9406. vec_cp_until_zero(__vector unsigned char __a) {
  9407.   return __builtin_s390_vistrb(__a);
  9408. }
  9409.  
  9410. static inline __ATTRS_o_ai __vector signed short
  9411. vec_cp_until_zero(__vector signed short __a) {
  9412.   return ((__vector signed short)
  9413.           __builtin_s390_vistrh((__vector unsigned short)__a));
  9414. }
  9415.  
  9416. static inline __ATTRS_o_ai __vector __bool short
  9417. vec_cp_until_zero(__vector __bool short __a) {
  9418.   return ((__vector __bool short)
  9419.           __builtin_s390_vistrh((__vector unsigned short)__a));
  9420. }
  9421.  
  9422. static inline __ATTRS_o_ai __vector unsigned short
  9423. vec_cp_until_zero(__vector unsigned short __a) {
  9424.   return __builtin_s390_vistrh(__a);
  9425. }
  9426.  
  9427. static inline __ATTRS_o_ai __vector signed int
  9428. vec_cp_until_zero(__vector signed int __a) {
  9429.   return ((__vector signed int)
  9430.           __builtin_s390_vistrf((__vector unsigned int)__a));
  9431. }
  9432.  
  9433. static inline __ATTRS_o_ai __vector __bool int
  9434. vec_cp_until_zero(__vector __bool int __a) {
  9435.   return ((__vector __bool int)
  9436.           __builtin_s390_vistrf((__vector unsigned int)__a));
  9437. }
  9438.  
  9439. static inline __ATTRS_o_ai __vector unsigned int
  9440. vec_cp_until_zero(__vector unsigned int __a) {
  9441.   return __builtin_s390_vistrf(__a);
  9442. }
  9443.  
  9444. /*-- vec_cp_until_zero_cc ---------------------------------------------------*/
  9445.  
  9446. static inline __ATTRS_o_ai __vector signed char
  9447. vec_cp_until_zero_cc(__vector signed char __a, int *__cc) {
  9448.   return (__vector signed char)
  9449.     __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
  9450. }
  9451.  
  9452. static inline __ATTRS_o_ai __vector __bool char
  9453. vec_cp_until_zero_cc(__vector __bool char __a, int *__cc) {
  9454.   return (__vector __bool char)
  9455.     __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
  9456. }
  9457.  
  9458. static inline __ATTRS_o_ai __vector unsigned char
  9459. vec_cp_until_zero_cc(__vector unsigned char __a, int *__cc) {
  9460.   return __builtin_s390_vistrbs(__a, __cc);
  9461. }
  9462.  
  9463. static inline __ATTRS_o_ai __vector signed short
  9464. vec_cp_until_zero_cc(__vector signed short __a, int *__cc) {
  9465.   return (__vector signed short)
  9466.     __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
  9467. }
  9468.  
  9469. static inline __ATTRS_o_ai __vector __bool short
  9470. vec_cp_until_zero_cc(__vector __bool short __a, int *__cc) {
  9471.   return (__vector __bool short)
  9472.     __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
  9473. }
  9474.  
  9475. static inline __ATTRS_o_ai __vector unsigned short
  9476. vec_cp_until_zero_cc(__vector unsigned short __a, int *__cc) {
  9477.   return __builtin_s390_vistrhs(__a, __cc);
  9478. }
  9479.  
  9480. static inline __ATTRS_o_ai __vector signed int
  9481. vec_cp_until_zero_cc(__vector signed int __a, int *__cc) {
  9482.   return (__vector signed int)
  9483.     __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
  9484. }
  9485.  
  9486. static inline __ATTRS_o_ai __vector __bool int
  9487. vec_cp_until_zero_cc(__vector __bool int __a, int *__cc) {
  9488.   return (__vector __bool int)
  9489.     __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
  9490. }
  9491.  
  9492. static inline __ATTRS_o_ai __vector unsigned int
  9493. vec_cp_until_zero_cc(__vector unsigned int __a, int *__cc) {
  9494.   return __builtin_s390_vistrfs(__a, __cc);
  9495. }
  9496.  
  9497. /*-- vec_cmpeq_idx ----------------------------------------------------------*/
  9498.  
  9499. static inline __ATTRS_o_ai __vector signed char
  9500. vec_cmpeq_idx(__vector signed char __a, __vector signed char __b) {
  9501.   return (__vector signed char)
  9502.     __builtin_s390_vfeeb((__vector unsigned char)__a,
  9503.                          (__vector unsigned char)__b);
  9504. }
  9505.  
  9506. static inline __ATTRS_o_ai __vector unsigned char
  9507. vec_cmpeq_idx(__vector __bool char __a, __vector __bool char __b) {
  9508.   return __builtin_s390_vfeeb((__vector unsigned char)__a,
  9509.                               (__vector unsigned char)__b);
  9510. }
  9511.  
  9512. static inline __ATTRS_o_ai __vector unsigned char
  9513. vec_cmpeq_idx(__vector unsigned char __a, __vector unsigned char __b) {
  9514.   return __builtin_s390_vfeeb(__a, __b);
  9515. }
  9516.  
  9517. static inline __ATTRS_o_ai __vector signed short
  9518. vec_cmpeq_idx(__vector signed short __a, __vector signed short __b) {
  9519.   return (__vector signed short)
  9520.     __builtin_s390_vfeeh((__vector unsigned short)__a,
  9521.                          (__vector unsigned short)__b);
  9522. }
  9523.  
  9524. static inline __ATTRS_o_ai __vector unsigned short
  9525. vec_cmpeq_idx(__vector __bool short __a, __vector __bool short __b) {
  9526.   return __builtin_s390_vfeeh((__vector unsigned short)__a,
  9527.                               (__vector unsigned short)__b);
  9528. }
  9529.  
  9530. static inline __ATTRS_o_ai __vector unsigned short
  9531. vec_cmpeq_idx(__vector unsigned short __a, __vector unsigned short __b) {
  9532.   return __builtin_s390_vfeeh(__a, __b);
  9533. }
  9534.  
  9535. static inline __ATTRS_o_ai __vector signed int
  9536. vec_cmpeq_idx(__vector signed int __a, __vector signed int __b) {
  9537.   return (__vector signed int)
  9538.     __builtin_s390_vfeef((__vector unsigned int)__a,
  9539.                          (__vector unsigned int)__b);
  9540. }
  9541.  
  9542. static inline __ATTRS_o_ai __vector unsigned int
  9543. vec_cmpeq_idx(__vector __bool int __a, __vector __bool int __b) {
  9544.   return __builtin_s390_vfeef((__vector unsigned int)__a,
  9545.                               (__vector unsigned int)__b);
  9546. }
  9547.  
  9548. static inline __ATTRS_o_ai __vector unsigned int
  9549. vec_cmpeq_idx(__vector unsigned int __a, __vector unsigned int __b) {
  9550.   return __builtin_s390_vfeef(__a, __b);
  9551. }
  9552.  
  9553. /*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
  9554.  
  9555. static inline __ATTRS_o_ai __vector signed char
  9556. vec_cmpeq_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
  9557.   return (__vector signed char)
  9558.     __builtin_s390_vfeebs((__vector unsigned char)__a,
  9559.                           (__vector unsigned char)__b, __cc);
  9560. }
  9561.  
  9562. static inline __ATTRS_o_ai __vector unsigned char
  9563. vec_cmpeq_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
  9564.   return __builtin_s390_vfeebs((__vector unsigned char)__a,
  9565.                                (__vector unsigned char)__b, __cc);
  9566. }
  9567.  
  9568. static inline __ATTRS_o_ai __vector unsigned char
  9569. vec_cmpeq_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
  9570.                  int *__cc) {
  9571.   return __builtin_s390_vfeebs(__a, __b, __cc);
  9572. }
  9573.  
  9574. static inline __ATTRS_o_ai __vector signed short
  9575. vec_cmpeq_idx_cc(__vector signed short __a, __vector signed short __b,
  9576.                  int *__cc) {
  9577.   return (__vector signed short)
  9578.     __builtin_s390_vfeehs((__vector unsigned short)__a,
  9579.                           (__vector unsigned short)__b, __cc);
  9580. }
  9581.  
  9582. static inline __ATTRS_o_ai __vector unsigned short
  9583. vec_cmpeq_idx_cc(__vector __bool short __a, __vector __bool short __b, int *__cc) {
  9584.   return __builtin_s390_vfeehs((__vector unsigned short)__a,
  9585.                                (__vector unsigned short)__b, __cc);
  9586. }
  9587.  
  9588. static inline __ATTRS_o_ai __vector unsigned short
  9589. vec_cmpeq_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
  9590.                  int *__cc) {
  9591.   return __builtin_s390_vfeehs(__a, __b, __cc);
  9592. }
  9593.  
  9594. static inline __ATTRS_o_ai __vector signed int
  9595. vec_cmpeq_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
  9596.   return (__vector signed int)
  9597.     __builtin_s390_vfeefs((__vector unsigned int)__a,
  9598.                           (__vector unsigned int)__b, __cc);
  9599. }
  9600.  
  9601. static inline __ATTRS_o_ai __vector unsigned int
  9602. vec_cmpeq_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
  9603.   return __builtin_s390_vfeefs((__vector unsigned int)__a,
  9604.                                (__vector unsigned int)__b, __cc);
  9605. }
  9606.  
  9607. static inline __ATTRS_o_ai __vector unsigned int
  9608. vec_cmpeq_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
  9609.                  int *__cc) {
  9610.   return __builtin_s390_vfeefs(__a, __b, __cc);
  9611. }
  9612.  
  9613. /*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
  9614.  
  9615. static inline __ATTRS_o_ai __vector signed char
  9616. vec_cmpeq_or_0_idx(__vector signed char __a, __vector signed char __b) {
  9617.   return (__vector signed char)
  9618.     __builtin_s390_vfeezb((__vector unsigned char)__a,
  9619.                           (__vector unsigned char)__b);
  9620. }
  9621.  
  9622. static inline __ATTRS_o_ai __vector unsigned char
  9623. vec_cmpeq_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
  9624.   return __builtin_s390_vfeezb((__vector unsigned char)__a,
  9625.                                (__vector unsigned char)__b);
  9626. }
  9627.  
  9628. static inline __ATTRS_o_ai __vector unsigned char
  9629. vec_cmpeq_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
  9630.   return __builtin_s390_vfeezb(__a, __b);
  9631. }
  9632.  
  9633. static inline __ATTRS_o_ai __vector signed short
  9634. vec_cmpeq_or_0_idx(__vector signed short __a, __vector signed short __b) {
  9635.   return (__vector signed short)
  9636.     __builtin_s390_vfeezh((__vector unsigned short)__a,
  9637.                           (__vector unsigned short)__b);
  9638. }
  9639.  
  9640. static inline __ATTRS_o_ai __vector unsigned short
  9641. vec_cmpeq_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
  9642.   return __builtin_s390_vfeezh((__vector unsigned short)__a,
  9643.                                (__vector unsigned short)__b);
  9644. }
  9645.  
  9646. static inline __ATTRS_o_ai __vector unsigned short
  9647. vec_cmpeq_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
  9648.   return __builtin_s390_vfeezh(__a, __b);
  9649. }
  9650.  
  9651. static inline __ATTRS_o_ai __vector signed int
  9652. vec_cmpeq_or_0_idx(__vector signed int __a, __vector signed int __b) {
  9653.   return (__vector signed int)
  9654.     __builtin_s390_vfeezf((__vector unsigned int)__a,
  9655.                           (__vector unsigned int)__b);
  9656. }
  9657.  
  9658. static inline __ATTRS_o_ai __vector unsigned int
  9659. vec_cmpeq_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
  9660.   return __builtin_s390_vfeezf((__vector unsigned int)__a,
  9661.                                (__vector unsigned int)__b);
  9662. }
  9663.  
  9664. static inline __ATTRS_o_ai __vector unsigned int
  9665. vec_cmpeq_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
  9666.   return __builtin_s390_vfeezf(__a, __b);
  9667. }
  9668.  
  9669. /*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
  9670.  
  9671. static inline __ATTRS_o_ai __vector signed char
  9672. vec_cmpeq_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
  9673.                       int *__cc) {
  9674.   return (__vector signed char)
  9675.     __builtin_s390_vfeezbs((__vector unsigned char)__a,
  9676.                            (__vector unsigned char)__b, __cc);
  9677. }
  9678.  
  9679. static inline __ATTRS_o_ai __vector unsigned char
  9680. vec_cmpeq_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
  9681.                       int *__cc) {
  9682.   return __builtin_s390_vfeezbs((__vector unsigned char)__a,
  9683.                                 (__vector unsigned char)__b, __cc);
  9684. }
  9685.  
  9686. static inline __ATTRS_o_ai __vector unsigned char
  9687. vec_cmpeq_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
  9688.                       int *__cc) {
  9689.   return __builtin_s390_vfeezbs(__a, __b, __cc);
  9690. }
  9691.  
  9692. static inline __ATTRS_o_ai __vector signed short
  9693. vec_cmpeq_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
  9694.                       int *__cc) {
  9695.   return (__vector signed short)
  9696.     __builtin_s390_vfeezhs((__vector unsigned short)__a,
  9697.                            (__vector unsigned short)__b, __cc);
  9698. }
  9699.  
  9700. static inline __ATTRS_o_ai __vector unsigned short
  9701. vec_cmpeq_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
  9702.                       int *__cc) {
  9703.   return __builtin_s390_vfeezhs((__vector unsigned short)__a,
  9704.                                 (__vector unsigned short)__b, __cc);
  9705. }
  9706.  
  9707. static inline __ATTRS_o_ai __vector unsigned short
  9708. vec_cmpeq_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
  9709.                       int *__cc) {
  9710.   return __builtin_s390_vfeezhs(__a, __b, __cc);
  9711. }
  9712.  
  9713. static inline __ATTRS_o_ai __vector signed int
  9714. vec_cmpeq_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
  9715.                       int *__cc) {
  9716.   return (__vector signed int)
  9717.     __builtin_s390_vfeezfs((__vector unsigned int)__a,
  9718.                            (__vector unsigned int)__b, __cc);
  9719. }
  9720.  
  9721. static inline __ATTRS_o_ai __vector unsigned int
  9722. vec_cmpeq_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
  9723.                       int *__cc) {
  9724.   return __builtin_s390_vfeezfs((__vector unsigned int)__a,
  9725.                                 (__vector unsigned int)__b, __cc);
  9726. }
  9727.  
  9728. static inline __ATTRS_o_ai __vector unsigned int
  9729. vec_cmpeq_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
  9730.                       int *__cc) {
  9731.   return __builtin_s390_vfeezfs(__a, __b, __cc);
  9732. }
  9733.  
  9734. /*-- vec_cmpne_idx ----------------------------------------------------------*/
  9735.  
  9736. static inline __ATTRS_o_ai __vector signed char
  9737. vec_cmpne_idx(__vector signed char __a, __vector signed char __b) {
  9738.   return (__vector signed char)
  9739.     __builtin_s390_vfeneb((__vector unsigned char)__a,
  9740.                           (__vector unsigned char)__b);
  9741. }
  9742.  
  9743. static inline __ATTRS_o_ai __vector unsigned char
  9744. vec_cmpne_idx(__vector __bool char __a, __vector __bool char __b) {
  9745.   return __builtin_s390_vfeneb((__vector unsigned char)__a,
  9746.                                (__vector unsigned char)__b);
  9747. }
  9748.  
  9749. static inline __ATTRS_o_ai __vector unsigned char
  9750. vec_cmpne_idx(__vector unsigned char __a, __vector unsigned char __b) {
  9751.   return __builtin_s390_vfeneb(__a, __b);
  9752. }
  9753.  
  9754. static inline __ATTRS_o_ai __vector signed short
  9755. vec_cmpne_idx(__vector signed short __a, __vector signed short __b) {
  9756.   return (__vector signed short)
  9757.     __builtin_s390_vfeneh((__vector unsigned short)__a,
  9758.                           (__vector unsigned short)__b);
  9759. }
  9760.  
  9761. static inline __ATTRS_o_ai __vector unsigned short
  9762. vec_cmpne_idx(__vector __bool short __a, __vector __bool short __b) {
  9763.   return __builtin_s390_vfeneh((__vector unsigned short)__a,
  9764.                                (__vector unsigned short)__b);
  9765. }
  9766.  
  9767. static inline __ATTRS_o_ai __vector unsigned short
  9768. vec_cmpne_idx(__vector unsigned short __a, __vector unsigned short __b) {
  9769.   return __builtin_s390_vfeneh(__a, __b);
  9770. }
  9771.  
  9772. static inline __ATTRS_o_ai __vector signed int
  9773. vec_cmpne_idx(__vector signed int __a, __vector signed int __b) {
  9774.   return (__vector signed int)
  9775.     __builtin_s390_vfenef((__vector unsigned int)__a,
  9776.                           (__vector unsigned int)__b);
  9777. }
  9778.  
  9779. static inline __ATTRS_o_ai __vector unsigned int
  9780. vec_cmpne_idx(__vector __bool int __a, __vector __bool int __b) {
  9781.   return __builtin_s390_vfenef((__vector unsigned int)__a,
  9782.                                (__vector unsigned int)__b);
  9783. }
  9784.  
  9785. static inline __ATTRS_o_ai __vector unsigned int
  9786. vec_cmpne_idx(__vector unsigned int __a, __vector unsigned int __b) {
  9787.   return __builtin_s390_vfenef(__a, __b);
  9788. }
  9789.  
  9790. /*-- vec_cmpne_idx_cc -------------------------------------------------------*/
  9791.  
  9792. static inline __ATTRS_o_ai __vector signed char
  9793. vec_cmpne_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
  9794.   return (__vector signed char)
  9795.     __builtin_s390_vfenebs((__vector unsigned char)__a,
  9796.                            (__vector unsigned char)__b, __cc);
  9797. }
  9798.  
  9799. static inline __ATTRS_o_ai __vector unsigned char
  9800. vec_cmpne_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
  9801.   return __builtin_s390_vfenebs((__vector unsigned char)__a,
  9802.                                 (__vector unsigned char)__b, __cc);
  9803. }
  9804.  
  9805. static inline __ATTRS_o_ai __vector unsigned char
  9806. vec_cmpne_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
  9807.                  int *__cc) {
  9808.   return __builtin_s390_vfenebs(__a, __b, __cc);
  9809. }
  9810.  
  9811. static inline __ATTRS_o_ai __vector signed short
  9812. vec_cmpne_idx_cc(__vector signed short __a, __vector signed short __b,
  9813.                  int *__cc) {
  9814.   return (__vector signed short)
  9815.     __builtin_s390_vfenehs((__vector unsigned short)__a,
  9816.                            (__vector unsigned short)__b, __cc);
  9817. }
  9818.  
  9819. static inline __ATTRS_o_ai __vector unsigned short
  9820. vec_cmpne_idx_cc(__vector __bool short __a, __vector __bool short __b,
  9821.                  int *__cc) {
  9822.   return __builtin_s390_vfenehs((__vector unsigned short)__a,
  9823.                                 (__vector unsigned short)__b, __cc);
  9824. }
  9825.  
  9826. static inline __ATTRS_o_ai __vector unsigned short
  9827. vec_cmpne_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
  9828.                  int *__cc) {
  9829.   return __builtin_s390_vfenehs(__a, __b, __cc);
  9830. }
  9831.  
  9832. static inline __ATTRS_o_ai __vector signed int
  9833. vec_cmpne_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
  9834.   return (__vector signed int)
  9835.     __builtin_s390_vfenefs((__vector unsigned int)__a,
  9836.                            (__vector unsigned int)__b, __cc);
  9837. }
  9838.  
  9839. static inline __ATTRS_o_ai __vector unsigned int
  9840. vec_cmpne_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
  9841.   return __builtin_s390_vfenefs((__vector unsigned int)__a,
  9842.                                 (__vector unsigned int)__b, __cc);
  9843. }
  9844.  
  9845. static inline __ATTRS_o_ai __vector unsigned int
  9846. vec_cmpne_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
  9847.                  int *__cc) {
  9848.   return __builtin_s390_vfenefs(__a, __b, __cc);
  9849. }
  9850.  
  9851. /*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
  9852.  
  9853. static inline __ATTRS_o_ai __vector signed char
  9854. vec_cmpne_or_0_idx(__vector signed char __a, __vector signed char __b) {
  9855.   return (__vector signed char)
  9856.     __builtin_s390_vfenezb((__vector unsigned char)__a,
  9857.                            (__vector unsigned char)__b);
  9858. }
  9859.  
  9860. static inline __ATTRS_o_ai __vector unsigned char
  9861. vec_cmpne_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
  9862.   return __builtin_s390_vfenezb((__vector unsigned char)__a,
  9863.                                 (__vector unsigned char)__b);
  9864. }
  9865.  
  9866. static inline __ATTRS_o_ai __vector unsigned char
  9867. vec_cmpne_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
  9868.   return __builtin_s390_vfenezb(__a, __b);
  9869. }
  9870.  
  9871. static inline __ATTRS_o_ai __vector signed short
  9872. vec_cmpne_or_0_idx(__vector signed short __a, __vector signed short __b) {
  9873.   return (__vector signed short)
  9874.     __builtin_s390_vfenezh((__vector unsigned short)__a,
  9875.                            (__vector unsigned short)__b);
  9876. }
  9877.  
  9878. static inline __ATTRS_o_ai __vector unsigned short
  9879. vec_cmpne_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
  9880.   return __builtin_s390_vfenezh((__vector unsigned short)__a,
  9881.                                 (__vector unsigned short)__b);
  9882. }
  9883.  
  9884. static inline __ATTRS_o_ai __vector unsigned short
  9885. vec_cmpne_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
  9886.   return __builtin_s390_vfenezh(__a, __b);
  9887. }
  9888.  
  9889. static inline __ATTRS_o_ai __vector signed int
  9890. vec_cmpne_or_0_idx(__vector signed int __a, __vector signed int __b) {
  9891.   return (__vector signed int)
  9892.     __builtin_s390_vfenezf((__vector unsigned int)__a,
  9893.                            (__vector unsigned int)__b);
  9894. }
  9895.  
  9896. static inline __ATTRS_o_ai __vector unsigned int
  9897. vec_cmpne_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
  9898.   return __builtin_s390_vfenezf((__vector unsigned int)__a,
  9899.                                 (__vector unsigned int)__b);
  9900. }
  9901.  
  9902. static inline __ATTRS_o_ai __vector unsigned int
  9903. vec_cmpne_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
  9904.   return __builtin_s390_vfenezf(__a, __b);
  9905. }
  9906.  
  9907. /*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
  9908.  
  9909. static inline __ATTRS_o_ai __vector signed char
  9910. vec_cmpne_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
  9911.                       int *__cc) {
  9912.   return (__vector signed char)
  9913.     __builtin_s390_vfenezbs((__vector unsigned char)__a,
  9914.                             (__vector unsigned char)__b, __cc);
  9915. }
  9916.  
  9917. static inline __ATTRS_o_ai __vector unsigned char
  9918. vec_cmpne_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
  9919.                       int *__cc) {
  9920.   return __builtin_s390_vfenezbs((__vector unsigned char)__a,
  9921.                                  (__vector unsigned char)__b, __cc);
  9922. }
  9923.  
  9924. static inline __ATTRS_o_ai __vector unsigned char
  9925. vec_cmpne_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
  9926.                       int *__cc) {
  9927.   return __builtin_s390_vfenezbs(__a, __b, __cc);
  9928. }
  9929.  
  9930. static inline __ATTRS_o_ai __vector signed short
  9931. vec_cmpne_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
  9932.                       int *__cc) {
  9933.   return (__vector signed short)
  9934.     __builtin_s390_vfenezhs((__vector unsigned short)__a,
  9935.                             (__vector unsigned short)__b, __cc);
  9936. }
  9937.  
  9938. static inline __ATTRS_o_ai __vector unsigned short
  9939. vec_cmpne_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
  9940.                       int *__cc) {
  9941.   return __builtin_s390_vfenezhs((__vector unsigned short)__a,
  9942.                                  (__vector unsigned short)__b, __cc);
  9943. }
  9944.  
  9945. static inline __ATTRS_o_ai __vector unsigned short
  9946. vec_cmpne_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
  9947.                       int *__cc) {
  9948.   return __builtin_s390_vfenezhs(__a, __b, __cc);
  9949. }
  9950.  
  9951. static inline __ATTRS_o_ai __vector signed int
  9952. vec_cmpne_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
  9953.                       int *__cc) {
  9954.   return (__vector signed int)
  9955.     __builtin_s390_vfenezfs((__vector unsigned int)__a,
  9956.                             (__vector unsigned int)__b, __cc);
  9957. }
  9958.  
  9959. static inline __ATTRS_o_ai __vector unsigned int
  9960. vec_cmpne_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
  9961.                       int *__cc) {
  9962.   return __builtin_s390_vfenezfs((__vector unsigned int)__a,
  9963.                                  (__vector unsigned int)__b, __cc);
  9964. }
  9965.  
  9966. static inline __ATTRS_o_ai __vector unsigned int
  9967. vec_cmpne_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
  9968.                       int *__cc) {
  9969.   return __builtin_s390_vfenezfs(__a, __b, __cc);
  9970. }
  9971.  
  9972. /*-- vec_cmprg --------------------------------------------------------------*/
  9973.  
  9974. static inline __ATTRS_o_ai __vector __bool char
  9975. vec_cmprg(__vector unsigned char __a, __vector unsigned char __b,
  9976.           __vector unsigned char __c) {
  9977.   return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);
  9978. }
  9979.  
  9980. static inline __ATTRS_o_ai __vector __bool short
  9981. vec_cmprg(__vector unsigned short __a, __vector unsigned short __b,
  9982.           __vector unsigned short __c) {
  9983.   return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 4);
  9984. }
  9985.  
  9986. static inline __ATTRS_o_ai __vector __bool int
  9987. vec_cmprg(__vector unsigned int __a, __vector unsigned int __b,
  9988.           __vector unsigned int __c) {
  9989.   return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);
  9990. }
  9991.  
  9992. /*-- vec_cmprg_cc -----------------------------------------------------------*/
  9993.  
  9994. static inline __ATTRS_o_ai __vector __bool char
  9995. vec_cmprg_cc(__vector unsigned char __a, __vector unsigned char __b,
  9996.              __vector unsigned char __c, int *__cc) {
  9997.   return (__vector __bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);
  9998. }
  9999.  
  10000. static inline __ATTRS_o_ai __vector __bool short
  10001. vec_cmprg_cc(__vector unsigned short __a, __vector unsigned short __b,
  10002.              __vector unsigned short __c, int *__cc) {
  10003.   return (__vector __bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);
  10004. }
  10005.  
  10006. static inline __ATTRS_o_ai __vector __bool int
  10007. vec_cmprg_cc(__vector unsigned int __a, __vector unsigned int __b,
  10008.              __vector unsigned int __c, int *__cc) {
  10009.   return (__vector __bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);
  10010. }
  10011.  
  10012. /*-- vec_cmprg_idx ----------------------------------------------------------*/
  10013.  
  10014. static inline __ATTRS_o_ai __vector unsigned char
  10015. vec_cmprg_idx(__vector unsigned char __a, __vector unsigned char __b,
  10016.               __vector unsigned char __c) {
  10017.   return __builtin_s390_vstrcb(__a, __b, __c, 0);
  10018. }
  10019.  
  10020. static inline __ATTRS_o_ai __vector unsigned short
  10021. vec_cmprg_idx(__vector unsigned short __a, __vector unsigned short __b,
  10022.               __vector unsigned short __c) {
  10023.   return __builtin_s390_vstrch(__a, __b, __c, 0);
  10024. }
  10025.  
  10026. static inline __ATTRS_o_ai __vector unsigned int
  10027. vec_cmprg_idx(__vector unsigned int __a, __vector unsigned int __b,
  10028.               __vector unsigned int __c) {
  10029.   return __builtin_s390_vstrcf(__a, __b, __c, 0);
  10030. }
  10031.  
  10032. /*-- vec_cmprg_idx_cc -------------------------------------------------------*/
  10033.  
  10034. static inline __ATTRS_o_ai __vector unsigned char
  10035. vec_cmprg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
  10036.                  __vector unsigned char __c, int *__cc) {
  10037.   return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);
  10038. }
  10039.  
  10040. static inline __ATTRS_o_ai __vector unsigned short
  10041. vec_cmprg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
  10042.                  __vector unsigned short __c, int *__cc) {
  10043.   return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);
  10044. }
  10045.  
  10046. static inline __ATTRS_o_ai __vector unsigned int
  10047. vec_cmprg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
  10048.                  __vector unsigned int __c, int *__cc) {
  10049.   return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);
  10050. }
  10051.  
  10052. /*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
  10053.  
  10054. static inline __ATTRS_o_ai __vector unsigned char
  10055. vec_cmprg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
  10056.                    __vector unsigned char __c) {
  10057.   return __builtin_s390_vstrczb(__a, __b, __c, 0);
  10058. }
  10059.  
  10060. static inline __ATTRS_o_ai __vector unsigned short
  10061. vec_cmprg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
  10062.                    __vector unsigned short __c) {
  10063.   return __builtin_s390_vstrczh(__a, __b, __c, 0);
  10064. }
  10065.  
  10066. static inline __ATTRS_o_ai __vector unsigned int
  10067. vec_cmprg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
  10068.                    __vector unsigned int __c) {
  10069.   return __builtin_s390_vstrczf(__a, __b, __c, 0);
  10070. }
  10071.  
  10072. /*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
  10073.  
  10074. static inline __ATTRS_o_ai __vector unsigned char
  10075. vec_cmprg_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
  10076.                       __vector unsigned char __c, int *__cc) {
  10077.   return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);
  10078. }
  10079.  
  10080. static inline __ATTRS_o_ai __vector unsigned short
  10081. vec_cmprg_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
  10082.                       __vector unsigned short __c, int *__cc) {
  10083.   return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);
  10084. }
  10085.  
  10086. static inline __ATTRS_o_ai __vector unsigned int
  10087. vec_cmprg_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
  10088.                       __vector unsigned int __c, int *__cc) {
  10089.   return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);
  10090. }
  10091.  
  10092. /*-- vec_cmpnrg -------------------------------------------------------------*/
  10093.  
  10094. static inline __ATTRS_o_ai __vector __bool char
  10095. vec_cmpnrg(__vector unsigned char __a, __vector unsigned char __b,
  10096.            __vector unsigned char __c) {
  10097.   return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);
  10098. }
  10099.  
  10100. static inline __ATTRS_o_ai __vector __bool short
  10101. vec_cmpnrg(__vector unsigned short __a, __vector unsigned short __b,
  10102.            __vector unsigned short __c) {
  10103.   return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 12);
  10104. }
  10105.  
  10106. static inline __ATTRS_o_ai __vector __bool int
  10107. vec_cmpnrg(__vector unsigned int __a, __vector unsigned int __b,
  10108.            __vector unsigned int __c) {
  10109.   return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);
  10110. }
  10111.  
  10112. /*-- vec_cmpnrg_cc ----------------------------------------------------------*/
  10113.  
  10114. static inline __ATTRS_o_ai __vector __bool char
  10115. vec_cmpnrg_cc(__vector unsigned char __a, __vector unsigned char __b,
  10116.               __vector unsigned char __c, int *__cc) {
  10117.   return (__vector __bool char)
  10118.     __builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);
  10119. }
  10120.  
  10121. static inline __ATTRS_o_ai __vector __bool short
  10122. vec_cmpnrg_cc(__vector unsigned short __a, __vector unsigned short __b,
  10123.               __vector unsigned short __c, int *__cc) {
  10124.   return (__vector __bool short)
  10125.     __builtin_s390_vstrchs(__a, __b, __c, 12, __cc);
  10126. }
  10127.  
  10128. static inline __ATTRS_o_ai __vector __bool int
  10129. vec_cmpnrg_cc(__vector unsigned int __a, __vector unsigned int __b,
  10130.               __vector unsigned int __c, int *__cc) {
  10131.   return (__vector __bool int)
  10132.     __builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);
  10133. }
  10134.  
  10135. /*-- vec_cmpnrg_idx ---------------------------------------------------------*/
  10136.  
  10137. static inline __ATTRS_o_ai __vector unsigned char
  10138. vec_cmpnrg_idx(__vector unsigned char __a, __vector unsigned char __b,
  10139.                __vector unsigned char __c) {
  10140.   return __builtin_s390_vstrcb(__a, __b, __c, 8);
  10141. }
  10142.  
  10143. static inline __ATTRS_o_ai __vector unsigned short
  10144. vec_cmpnrg_idx(__vector unsigned short __a, __vector unsigned short __b,
  10145.                __vector unsigned short __c) {
  10146.   return __builtin_s390_vstrch(__a, __b, __c, 8);
  10147. }
  10148.  
  10149. static inline __ATTRS_o_ai __vector unsigned int
  10150. vec_cmpnrg_idx(__vector unsigned int __a, __vector unsigned int __b,
  10151.                __vector unsigned int __c) {
  10152.   return __builtin_s390_vstrcf(__a, __b, __c, 8);
  10153. }
  10154.  
  10155. /*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
  10156.  
  10157. static inline __ATTRS_o_ai __vector unsigned char
  10158. vec_cmpnrg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
  10159.                   __vector unsigned char __c, int *__cc) {
  10160.   return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);
  10161. }
  10162.  
  10163. static inline __ATTRS_o_ai __vector unsigned short
  10164. vec_cmpnrg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
  10165.                   __vector unsigned short __c, int *__cc) {
  10166.   return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);
  10167. }
  10168.  
  10169. static inline __ATTRS_o_ai __vector unsigned int
  10170. vec_cmpnrg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
  10171.                   __vector unsigned int __c, int *__cc) {
  10172.   return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);
  10173. }
  10174.  
  10175. /*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
  10176.  
  10177. static inline __ATTRS_o_ai __vector unsigned char
  10178. vec_cmpnrg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
  10179.                     __vector unsigned char __c) {
  10180.   return __builtin_s390_vstrczb(__a, __b, __c, 8);
  10181. }
  10182.  
  10183. static inline __ATTRS_o_ai __vector unsigned short
  10184. vec_cmpnrg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
  10185.                     __vector unsigned short __c) {
  10186.   return __builtin_s390_vstrczh(__a, __b, __c, 8);
  10187. }
  10188.  
  10189. static inline __ATTRS_o_ai __vector unsigned int
  10190. vec_cmpnrg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
  10191.                     __vector unsigned int __c) {
  10192.   return __builtin_s390_vstrczf(__a, __b, __c, 8);
  10193. }
  10194.  
  10195. /*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
  10196.  
  10197. static inline __ATTRS_o_ai __vector unsigned char
  10198. vec_cmpnrg_or_0_idx_cc(__vector unsigned char __a,
  10199.                        __vector unsigned char __b,
  10200.                        __vector unsigned char __c, int *__cc) {
  10201.   return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);
  10202. }
  10203.  
  10204. static inline __ATTRS_o_ai __vector unsigned short
  10205. vec_cmpnrg_or_0_idx_cc(__vector unsigned short __a,
  10206.                        __vector unsigned short __b,
  10207.                        __vector unsigned short __c, int *__cc) {
  10208.   return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);
  10209. }
  10210.  
  10211. static inline __ATTRS_o_ai __vector unsigned int
  10212. vec_cmpnrg_or_0_idx_cc(__vector unsigned int __a,
  10213.                        __vector unsigned int __b,
  10214.                        __vector unsigned int __c, int *__cc) {
  10215.   return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);
  10216. }
  10217.  
  10218. /*-- vec_find_any_eq --------------------------------------------------------*/
  10219.  
  10220. static inline __ATTRS_o_ai __vector __bool char
  10221. vec_find_any_eq(__vector signed char __a, __vector signed char __b) {
  10222.   return (__vector __bool char)
  10223.     __builtin_s390_vfaeb((__vector unsigned char)__a,
  10224.                          (__vector unsigned char)__b, 4);
  10225. }
  10226.  
  10227. static inline __ATTRS_o_ai __vector __bool char
  10228. vec_find_any_eq(__vector __bool char __a, __vector __bool char __b) {
  10229.   return (__vector __bool char)
  10230.     __builtin_s390_vfaeb((__vector unsigned char)__a,
  10231.                          (__vector unsigned char)__b, 4);
  10232. }
  10233.  
  10234. static inline __ATTRS_o_ai __vector __bool char
  10235. vec_find_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
  10236.   return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 4);
  10237. }
  10238.  
  10239. static inline __ATTRS_o_ai __vector __bool short
  10240. vec_find_any_eq(__vector signed short __a, __vector signed short __b) {
  10241.   return (__vector __bool short)
  10242.     __builtin_s390_vfaeh((__vector unsigned short)__a,
  10243.                          (__vector unsigned short)__b, 4);
  10244. }
  10245.  
  10246. static inline __ATTRS_o_ai __vector __bool short
  10247. vec_find_any_eq(__vector __bool short __a, __vector __bool short __b) {
  10248.   return (__vector __bool short)
  10249.     __builtin_s390_vfaeh((__vector unsigned short)__a,
  10250.                          (__vector unsigned short)__b, 4);
  10251. }
  10252.  
  10253. static inline __ATTRS_o_ai __vector __bool short
  10254. vec_find_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
  10255.   return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 4);
  10256. }
  10257.  
  10258. static inline __ATTRS_o_ai __vector __bool int
  10259. vec_find_any_eq(__vector signed int __a, __vector signed int __b) {
  10260.   return (__vector __bool int)
  10261.     __builtin_s390_vfaef((__vector unsigned int)__a,
  10262.                          (__vector unsigned int)__b, 4);
  10263. }
  10264.  
  10265. static inline __ATTRS_o_ai __vector __bool int
  10266. vec_find_any_eq(__vector __bool int __a, __vector __bool int __b) {
  10267.   return (__vector __bool int)
  10268.     __builtin_s390_vfaef((__vector unsigned int)__a,
  10269.                          (__vector unsigned int)__b, 4);
  10270. }
  10271.  
  10272. static inline __ATTRS_o_ai __vector __bool int
  10273. vec_find_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
  10274.   return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 4);
  10275. }
  10276.  
  10277. /*-- vec_find_any_eq_cc -----------------------------------------------------*/
  10278.  
  10279. static inline __ATTRS_o_ai __vector __bool char
  10280. vec_find_any_eq_cc(__vector signed char __a, __vector signed char __b,
  10281.                    int *__cc) {
  10282.   return (__vector __bool char)
  10283.     __builtin_s390_vfaebs((__vector unsigned char)__a,
  10284.                           (__vector unsigned char)__b, 4, __cc);
  10285. }
  10286.  
  10287. static inline __ATTRS_o_ai __vector __bool char
  10288. vec_find_any_eq_cc(__vector __bool char __a, __vector __bool char __b,
  10289.                    int *__cc) {
  10290.   return (__vector __bool char)
  10291.     __builtin_s390_vfaebs((__vector unsigned char)__a,
  10292.                           (__vector unsigned char)__b, 4, __cc);
  10293. }
  10294.  
  10295. static inline __ATTRS_o_ai __vector __bool char
  10296. vec_find_any_eq_cc(__vector unsigned char __a, __vector unsigned char __b,
  10297.                    int *__cc) {
  10298.   return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);
  10299. }
  10300.  
  10301. static inline __ATTRS_o_ai __vector __bool short
  10302. vec_find_any_eq_cc(__vector signed short __a, __vector signed short __b,
  10303.                    int *__cc) {
  10304.   return (__vector __bool short)
  10305.     __builtin_s390_vfaehs((__vector unsigned short)__a,
  10306.                           (__vector unsigned short)__b, 4, __cc);
  10307. }
  10308.  
  10309. static inline __ATTRS_o_ai __vector __bool short
  10310. vec_find_any_eq_cc(__vector __bool short __a, __vector __bool short __b,
  10311.                    int *__cc) {
  10312.   return (__vector __bool short)
  10313.     __builtin_s390_vfaehs((__vector unsigned short)__a,
  10314.                           (__vector unsigned short)__b, 4, __cc);
  10315. }
  10316.  
  10317. static inline __ATTRS_o_ai __vector __bool short
  10318. vec_find_any_eq_cc(__vector unsigned short __a, __vector unsigned short __b,
  10319.                    int *__cc) {
  10320.   return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);
  10321. }
  10322.  
  10323. static inline __ATTRS_o_ai __vector __bool int
  10324. vec_find_any_eq_cc(__vector signed int __a, __vector signed int __b,
  10325.                    int *__cc) {
  10326.   return (__vector __bool int)
  10327.     __builtin_s390_vfaefs((__vector unsigned int)__a,
  10328.                           (__vector unsigned int)__b, 4, __cc);
  10329. }
  10330.  
  10331. static inline __ATTRS_o_ai __vector __bool int
  10332. vec_find_any_eq_cc(__vector __bool int __a, __vector __bool int __b,
  10333.                    int *__cc) {
  10334.   return (__vector __bool int)
  10335.     __builtin_s390_vfaefs((__vector unsigned int)__a,
  10336.                           (__vector unsigned int)__b, 4, __cc);
  10337. }
  10338.  
  10339. static inline __ATTRS_o_ai __vector __bool int
  10340. vec_find_any_eq_cc(__vector unsigned int __a, __vector unsigned int __b,
  10341.                    int *__cc) {
  10342.   return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);
  10343. }
  10344.  
  10345. /*-- vec_find_any_eq_idx ----------------------------------------------------*/
  10346.  
  10347. static inline __ATTRS_o_ai __vector signed char
  10348. vec_find_any_eq_idx(__vector signed char __a, __vector signed char __b) {
  10349.   return (__vector signed char)
  10350.     __builtin_s390_vfaeb((__vector unsigned char)__a,
  10351.                          (__vector unsigned char)__b, 0);
  10352. }
  10353.  
  10354. static inline __ATTRS_o_ai __vector unsigned char
  10355. vec_find_any_eq_idx(__vector __bool char __a, __vector __bool char __b) {
  10356.   return __builtin_s390_vfaeb((__vector unsigned char)__a,
  10357.                               (__vector unsigned char)__b, 0);
  10358. }
  10359.  
  10360. static inline __ATTRS_o_ai __vector unsigned char
  10361. vec_find_any_eq_idx(__vector unsigned char __a, __vector unsigned char __b) {
  10362.   return __builtin_s390_vfaeb(__a, __b, 0);
  10363. }
  10364.  
  10365. static inline __ATTRS_o_ai __vector signed short
  10366. vec_find_any_eq_idx(__vector signed short __a, __vector signed short __b) {
  10367.   return (__vector signed short)
  10368.     __builtin_s390_vfaeh((__vector unsigned short)__a,
  10369.                          (__vector unsigned short)__b, 0);
  10370. }
  10371.  
  10372. static inline __ATTRS_o_ai __vector unsigned short
  10373. vec_find_any_eq_idx(__vector __bool short __a, __vector __bool short __b) {
  10374.   return __builtin_s390_vfaeh((__vector unsigned short)__a,
  10375.                               (__vector unsigned short)__b, 0);
  10376. }
  10377.  
  10378. static inline __ATTRS_o_ai __vector unsigned short
  10379. vec_find_any_eq_idx(__vector unsigned short __a, __vector unsigned short __b) {
  10380.   return __builtin_s390_vfaeh(__a, __b, 0);
  10381. }
  10382.  
  10383. static inline __ATTRS_o_ai __vector signed int
  10384. vec_find_any_eq_idx(__vector signed int __a, __vector signed int __b) {
  10385.   return (__vector signed int)
  10386.     __builtin_s390_vfaef((__vector unsigned int)__a,
  10387.                          (__vector unsigned int)__b, 0);
  10388. }
  10389.  
  10390. static inline __ATTRS_o_ai __vector unsigned int
  10391. vec_find_any_eq_idx(__vector __bool int __a, __vector __bool int __b) {
  10392.   return __builtin_s390_vfaef((__vector unsigned int)__a,
  10393.                               (__vector unsigned int)__b, 0);
  10394. }
  10395.  
  10396. static inline __ATTRS_o_ai __vector unsigned int
  10397. vec_find_any_eq_idx(__vector unsigned int __a, __vector unsigned int __b) {
  10398.   return __builtin_s390_vfaef(__a, __b, 0);
  10399. }
  10400.  
  10401. /*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
  10402.  
  10403. static inline __ATTRS_o_ai __vector signed char
  10404. vec_find_any_eq_idx_cc(__vector signed char __a,
  10405.                        __vector signed char __b, int *__cc) {
  10406.   return (__vector signed char)
  10407.     __builtin_s390_vfaebs((__vector unsigned char)__a,
  10408.                           (__vector unsigned char)__b, 0, __cc);
  10409. }
  10410.  
  10411. static inline __ATTRS_o_ai __vector unsigned char
  10412. vec_find_any_eq_idx_cc(__vector __bool char __a,
  10413.                        __vector __bool char __b, int *__cc) {
  10414.   return __builtin_s390_vfaebs((__vector unsigned char)__a,
  10415.                                (__vector unsigned char)__b, 0, __cc);
  10416. }
  10417.  
  10418. static inline __ATTRS_o_ai __vector unsigned char
  10419. vec_find_any_eq_idx_cc(__vector unsigned char __a,
  10420.                        __vector unsigned char __b, int *__cc) {
  10421.   return __builtin_s390_vfaebs(__a, __b, 0, __cc);
  10422. }
  10423.  
  10424. static inline __ATTRS_o_ai __vector signed short
  10425. vec_find_any_eq_idx_cc(__vector signed short __a,
  10426.                        __vector signed short __b, int *__cc) {
  10427.   return (__vector signed short)
  10428.     __builtin_s390_vfaehs((__vector unsigned short)__a,
  10429.                           (__vector unsigned short)__b, 0, __cc);
  10430. }
  10431.  
  10432. static inline __ATTRS_o_ai __vector unsigned short
  10433. vec_find_any_eq_idx_cc(__vector __bool short __a,
  10434.                        __vector __bool short __b, int *__cc) {
  10435.   return __builtin_s390_vfaehs((__vector unsigned short)__a,
  10436.                                (__vector unsigned short)__b, 0, __cc);
  10437. }
  10438.  
  10439. static inline __ATTRS_o_ai __vector unsigned short
  10440. vec_find_any_eq_idx_cc(__vector unsigned short __a,
  10441.                        __vector unsigned short __b, int *__cc) {
  10442.   return __builtin_s390_vfaehs(__a, __b, 0, __cc);
  10443. }
  10444.  
  10445. static inline __ATTRS_o_ai __vector signed int
  10446. vec_find_any_eq_idx_cc(__vector signed int __a,
  10447.                        __vector signed int __b, int *__cc) {
  10448.   return (__vector signed int)
  10449.     __builtin_s390_vfaefs((__vector unsigned int)__a,
  10450.                           (__vector unsigned int)__b, 0, __cc);
  10451. }
  10452.  
  10453. static inline __ATTRS_o_ai __vector unsigned int
  10454. vec_find_any_eq_idx_cc(__vector __bool int __a,
  10455.                        __vector __bool int __b, int *__cc) {
  10456.   return __builtin_s390_vfaefs((__vector unsigned int)__a,
  10457.                                (__vector unsigned int)__b, 0, __cc);
  10458. }
  10459.  
  10460. static inline __ATTRS_o_ai __vector unsigned int
  10461. vec_find_any_eq_idx_cc(__vector unsigned int __a,
  10462.                        __vector unsigned int __b, int *__cc) {
  10463.   return __builtin_s390_vfaefs(__a, __b, 0, __cc);
  10464. }
  10465.  
  10466. /*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
  10467.  
  10468. static inline __ATTRS_o_ai __vector signed char
  10469. vec_find_any_eq_or_0_idx(__vector signed char __a,
  10470.                          __vector signed char __b) {
  10471.   return (__vector signed char)
  10472.     __builtin_s390_vfaezb((__vector unsigned char)__a,
  10473.                           (__vector unsigned char)__b, 0);
  10474. }
  10475.  
  10476. static inline __ATTRS_o_ai __vector unsigned char
  10477. vec_find_any_eq_or_0_idx(__vector __bool char __a,
  10478.                          __vector __bool char __b) {
  10479.   return __builtin_s390_vfaezb((__vector unsigned char)__a,
  10480.                                (__vector unsigned char)__b, 0);
  10481. }
  10482.  
  10483. static inline __ATTRS_o_ai __vector unsigned char
  10484. vec_find_any_eq_or_0_idx(__vector unsigned char __a,
  10485.                          __vector unsigned char __b) {
  10486.   return __builtin_s390_vfaezb(__a, __b, 0);
  10487. }
  10488.  
  10489. static inline __ATTRS_o_ai __vector signed short
  10490. vec_find_any_eq_or_0_idx(__vector signed short __a,
  10491.                          __vector signed short __b) {
  10492.   return (__vector signed short)
  10493.     __builtin_s390_vfaezh((__vector unsigned short)__a,
  10494.                           (__vector unsigned short)__b, 0);
  10495. }
  10496.  
  10497. static inline __ATTRS_o_ai __vector unsigned short
  10498. vec_find_any_eq_or_0_idx(__vector __bool short __a,
  10499.                          __vector __bool short __b) {
  10500.   return __builtin_s390_vfaezh((__vector unsigned short)__a,
  10501.                                (__vector unsigned short)__b, 0);
  10502. }
  10503.  
  10504. static inline __ATTRS_o_ai __vector unsigned short
  10505. vec_find_any_eq_or_0_idx(__vector unsigned short __a,
  10506.                          __vector unsigned short __b) {
  10507.   return __builtin_s390_vfaezh(__a, __b, 0);
  10508. }
  10509.  
  10510. static inline __ATTRS_o_ai __vector signed int
  10511. vec_find_any_eq_or_0_idx(__vector signed int __a,
  10512.                          __vector signed int __b) {
  10513.   return (__vector signed int)
  10514.     __builtin_s390_vfaezf((__vector unsigned int)__a,
  10515.                           (__vector unsigned int)__b, 0);
  10516. }
  10517.  
  10518. static inline __ATTRS_o_ai __vector unsigned int
  10519. vec_find_any_eq_or_0_idx(__vector __bool int __a,
  10520.                          __vector __bool int __b) {
  10521.   return __builtin_s390_vfaezf((__vector unsigned int)__a,
  10522.                                (__vector unsigned int)__b, 0);
  10523. }
  10524.  
  10525. static inline __ATTRS_o_ai __vector unsigned int
  10526. vec_find_any_eq_or_0_idx(__vector unsigned int __a,
  10527.                          __vector unsigned int __b) {
  10528.   return __builtin_s390_vfaezf(__a, __b, 0);
  10529. }
  10530.  
  10531. /*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
  10532.  
  10533. static inline __ATTRS_o_ai __vector signed char
  10534. vec_find_any_eq_or_0_idx_cc(__vector signed char __a,
  10535.                             __vector signed char __b, int *__cc) {
  10536.   return (__vector signed char)
  10537.     __builtin_s390_vfaezbs((__vector unsigned char)__a,
  10538.                            (__vector unsigned char)__b, 0, __cc);
  10539. }
  10540.  
  10541. static inline __ATTRS_o_ai __vector unsigned char
  10542. vec_find_any_eq_or_0_idx_cc(__vector __bool char __a,
  10543.                             __vector __bool char __b, int *__cc) {
  10544.   return __builtin_s390_vfaezbs((__vector unsigned char)__a,
  10545.                                 (__vector unsigned char)__b, 0, __cc);
  10546. }
  10547.  
  10548. static inline __ATTRS_o_ai __vector unsigned char
  10549. vec_find_any_eq_or_0_idx_cc(__vector unsigned char __a,
  10550.                             __vector unsigned char __b, int *__cc) {
  10551.   return __builtin_s390_vfaezbs(__a, __b, 0, __cc);
  10552. }
  10553.  
  10554. static inline __ATTRS_o_ai __vector signed short
  10555. vec_find_any_eq_or_0_idx_cc(__vector signed short __a,
  10556.                             __vector signed short __b, int *__cc) {
  10557.   return (__vector signed short)
  10558.     __builtin_s390_vfaezhs((__vector unsigned short)__a,
  10559.                            (__vector unsigned short)__b, 0, __cc);
  10560. }
  10561.  
  10562. static inline __ATTRS_o_ai __vector unsigned short
  10563. vec_find_any_eq_or_0_idx_cc(__vector __bool short __a,
  10564.                             __vector __bool short __b, int *__cc) {
  10565.   return __builtin_s390_vfaezhs((__vector unsigned short)__a,
  10566.                                 (__vector unsigned short)__b, 0, __cc);
  10567. }
  10568.  
  10569. static inline __ATTRS_o_ai __vector unsigned short
  10570. vec_find_any_eq_or_0_idx_cc(__vector unsigned short __a,
  10571.                             __vector unsigned short __b, int *__cc) {
  10572.   return __builtin_s390_vfaezhs(__a, __b, 0, __cc);
  10573. }
  10574.  
  10575. static inline __ATTRS_o_ai __vector signed int
  10576. vec_find_any_eq_or_0_idx_cc(__vector signed int __a,
  10577.                             __vector signed int __b, int *__cc) {
  10578.   return (__vector signed int)
  10579.     __builtin_s390_vfaezfs((__vector unsigned int)__a,
  10580.                            (__vector unsigned int)__b, 0, __cc);
  10581. }
  10582.  
  10583. static inline __ATTRS_o_ai __vector unsigned int
  10584. vec_find_any_eq_or_0_idx_cc(__vector __bool int __a,
  10585.                             __vector __bool int __b, int *__cc) {
  10586.   return __builtin_s390_vfaezfs((__vector unsigned int)__a,
  10587.                                 (__vector unsigned int)__b, 0, __cc);
  10588. }
  10589.  
  10590. static inline __ATTRS_o_ai __vector unsigned int
  10591. vec_find_any_eq_or_0_idx_cc(__vector unsigned int __a,
  10592.                             __vector unsigned int __b, int *__cc) {
  10593.   return __builtin_s390_vfaezfs(__a, __b, 0, __cc);
  10594. }
  10595.  
  10596. /*-- vec_find_any_ne --------------------------------------------------------*/
  10597.  
  10598. static inline __ATTRS_o_ai __vector __bool char
  10599. vec_find_any_ne(__vector signed char __a, __vector signed char __b) {
  10600.   return (__vector __bool char)
  10601.     __builtin_s390_vfaeb((__vector unsigned char)__a,
  10602.                          (__vector unsigned char)__b, 12);
  10603. }
  10604.  
  10605. static inline __ATTRS_o_ai __vector __bool char
  10606. vec_find_any_ne(__vector __bool char __a, __vector __bool char __b) {
  10607.   return (__vector __bool char)
  10608.     __builtin_s390_vfaeb((__vector unsigned char)__a,
  10609.                          (__vector unsigned char)__b, 12);
  10610. }
  10611.  
  10612. static inline __ATTRS_o_ai __vector __bool char
  10613. vec_find_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
  10614.   return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 12);
  10615. }
  10616.  
  10617. static inline __ATTRS_o_ai __vector __bool short
  10618. vec_find_any_ne(__vector signed short __a, __vector signed short __b) {
  10619.   return (__vector __bool short)
  10620.     __builtin_s390_vfaeh((__vector unsigned short)__a,
  10621.                          (__vector unsigned short)__b, 12);
  10622. }
  10623.  
  10624. static inline __ATTRS_o_ai __vector __bool short
  10625. vec_find_any_ne(__vector __bool short __a, __vector __bool short __b) {
  10626.   return (__vector __bool short)
  10627.     __builtin_s390_vfaeh((__vector unsigned short)__a,
  10628.                          (__vector unsigned short)__b, 12);
  10629. }
  10630.  
  10631. static inline __ATTRS_o_ai __vector __bool short
  10632. vec_find_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
  10633.   return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 12);
  10634. }
  10635.  
  10636. static inline __ATTRS_o_ai __vector __bool int
  10637. vec_find_any_ne(__vector signed int __a, __vector signed int __b) {
  10638.   return (__vector __bool int)
  10639.     __builtin_s390_vfaef((__vector unsigned int)__a,
  10640.                          (__vector unsigned int)__b, 12);
  10641. }
  10642.  
  10643. static inline __ATTRS_o_ai __vector __bool int
  10644. vec_find_any_ne(__vector __bool int __a, __vector __bool int __b) {
  10645.   return (__vector __bool int)
  10646.     __builtin_s390_vfaef((__vector unsigned int)__a,
  10647.                          (__vector unsigned int)__b, 12);
  10648. }
  10649.  
  10650. static inline __ATTRS_o_ai __vector __bool int
  10651. vec_find_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
  10652.   return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 12);
  10653. }
  10654.  
  10655. /*-- vec_find_any_ne_cc -----------------------------------------------------*/
  10656.  
  10657. static inline __ATTRS_o_ai __vector __bool char
  10658. vec_find_any_ne_cc(__vector signed char __a,
  10659.                    __vector signed char __b, int *__cc) {
  10660.   return (__vector __bool char)
  10661.     __builtin_s390_vfaebs((__vector unsigned char)__a,
  10662.                           (__vector unsigned char)__b, 12, __cc);
  10663. }
  10664.  
  10665. static inline __ATTRS_o_ai __vector __bool char
  10666. vec_find_any_ne_cc(__vector __bool char __a,
  10667.                    __vector __bool char __b, int *__cc) {
  10668.   return (__vector __bool char)
  10669.     __builtin_s390_vfaebs((__vector unsigned char)__a,
  10670.                           (__vector unsigned char)__b, 12, __cc);
  10671. }
  10672.  
  10673. static inline __ATTRS_o_ai __vector __bool char
  10674. vec_find_any_ne_cc(__vector unsigned char __a,
  10675.                    __vector unsigned char __b, int *__cc) {
  10676.   return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);
  10677. }
  10678.  
  10679. static inline __ATTRS_o_ai __vector __bool short
  10680. vec_find_any_ne_cc(__vector signed short __a,
  10681.                    __vector signed short __b, int *__cc) {
  10682.   return (__vector __bool short)
  10683.     __builtin_s390_vfaehs((__vector unsigned short)__a,
  10684.                           (__vector unsigned short)__b, 12, __cc);
  10685. }
  10686.  
  10687. static inline __ATTRS_o_ai __vector __bool short
  10688. vec_find_any_ne_cc(__vector __bool short __a,
  10689.                    __vector __bool short __b, int *__cc) {
  10690.   return (__vector __bool short)
  10691.     __builtin_s390_vfaehs((__vector unsigned short)__a,
  10692.                           (__vector unsigned short)__b, 12, __cc);
  10693. }
  10694.  
  10695. static inline __ATTRS_o_ai __vector __bool short
  10696. vec_find_any_ne_cc(__vector unsigned short __a,
  10697.                    __vector unsigned short __b, int *__cc) {
  10698.   return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);
  10699. }
  10700.  
  10701. static inline __ATTRS_o_ai __vector __bool int
  10702. vec_find_any_ne_cc(__vector signed int __a,
  10703.                    __vector signed int __b, int *__cc) {
  10704.   return (__vector __bool int)
  10705.     __builtin_s390_vfaefs((__vector unsigned int)__a,
  10706.                           (__vector unsigned int)__b, 12, __cc);
  10707. }
  10708.  
  10709. static inline __ATTRS_o_ai __vector __bool int
  10710. vec_find_any_ne_cc(__vector __bool int __a,
  10711.                    __vector __bool int __b, int *__cc) {
  10712.   return (__vector __bool int)
  10713.     __builtin_s390_vfaefs((__vector unsigned int)__a,
  10714.                           (__vector unsigned int)__b, 12, __cc);
  10715. }
  10716.  
  10717. static inline __ATTRS_o_ai __vector __bool int
  10718. vec_find_any_ne_cc(__vector unsigned int __a,
  10719.                    __vector unsigned int __b, int *__cc) {
  10720.   return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);
  10721. }
  10722.  
  10723. /*-- vec_find_any_ne_idx ----------------------------------------------------*/
  10724.  
  10725. static inline __ATTRS_o_ai __vector signed char
  10726. vec_find_any_ne_idx(__vector signed char __a, __vector signed char __b) {
  10727.   return (__vector signed char)
  10728.     __builtin_s390_vfaeb((__vector unsigned char)__a,
  10729.                          (__vector unsigned char)__b, 8);
  10730. }
  10731.  
  10732. static inline __ATTRS_o_ai __vector unsigned char
  10733. vec_find_any_ne_idx(__vector __bool char __a, __vector __bool char __b) {
  10734.   return __builtin_s390_vfaeb((__vector unsigned char)__a,
  10735.                               (__vector unsigned char)__b, 8);
  10736. }
  10737.  
  10738. static inline __ATTRS_o_ai __vector unsigned char
  10739. vec_find_any_ne_idx(__vector unsigned char __a, __vector unsigned char __b) {
  10740.   return __builtin_s390_vfaeb(__a, __b, 8);
  10741. }
  10742.  
  10743. static inline __ATTRS_o_ai __vector signed short
  10744. vec_find_any_ne_idx(__vector signed short __a, __vector signed short __b) {
  10745.   return (__vector signed short)
  10746.     __builtin_s390_vfaeh((__vector unsigned short)__a,
  10747.                          (__vector unsigned short)__b, 8);
  10748. }
  10749.  
  10750. static inline __ATTRS_o_ai __vector unsigned short
  10751. vec_find_any_ne_idx(__vector __bool short __a, __vector __bool short __b) {
  10752.   return __builtin_s390_vfaeh((__vector unsigned short)__a,
  10753.                               (__vector unsigned short)__b, 8);
  10754. }
  10755.  
  10756. static inline __ATTRS_o_ai __vector unsigned short
  10757. vec_find_any_ne_idx(__vector unsigned short __a, __vector unsigned short __b) {
  10758.   return __builtin_s390_vfaeh(__a, __b, 8);
  10759. }
  10760.  
  10761. static inline __ATTRS_o_ai __vector signed int
  10762. vec_find_any_ne_idx(__vector signed int __a, __vector signed int __b) {
  10763.   return (__vector signed int)
  10764.     __builtin_s390_vfaef((__vector unsigned int)__a,
  10765.                          (__vector unsigned int)__b, 8);
  10766. }
  10767.  
  10768. static inline __ATTRS_o_ai __vector unsigned int
  10769. vec_find_any_ne_idx(__vector __bool int __a, __vector __bool int __b) {
  10770.   return __builtin_s390_vfaef((__vector unsigned int)__a,
  10771.                               (__vector unsigned int)__b, 8);
  10772. }
  10773.  
  10774. static inline __ATTRS_o_ai __vector unsigned int
  10775. vec_find_any_ne_idx(__vector unsigned int __a, __vector unsigned int __b) {
  10776.   return __builtin_s390_vfaef(__a, __b, 8);
  10777. }
  10778.  
  10779. /*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
  10780.  
  10781. static inline __ATTRS_o_ai __vector signed char
  10782. vec_find_any_ne_idx_cc(__vector signed char __a,
  10783.                        __vector signed char __b, int *__cc) {
  10784.   return (__vector signed char)
  10785.     __builtin_s390_vfaebs((__vector unsigned char)__a,
  10786.                           (__vector unsigned char)__b, 8, __cc);
  10787. }
  10788.  
  10789. static inline __ATTRS_o_ai __vector unsigned char
  10790. vec_find_any_ne_idx_cc(__vector __bool char __a,
  10791.                        __vector __bool char __b, int *__cc) {
  10792.   return __builtin_s390_vfaebs((__vector unsigned char)__a,
  10793.                                (__vector unsigned char)__b, 8, __cc);
  10794. }
  10795.  
  10796. static inline __ATTRS_o_ai __vector unsigned char
  10797. vec_find_any_ne_idx_cc(__vector unsigned char __a,
  10798.                        __vector unsigned char __b,
  10799.                        int *__cc) {
  10800.   return __builtin_s390_vfaebs(__a, __b, 8, __cc);
  10801. }
  10802.  
  10803. static inline __ATTRS_o_ai __vector signed short
  10804. vec_find_any_ne_idx_cc(__vector signed short __a,
  10805.                        __vector signed short __b, int *__cc) {
  10806.   return (__vector signed short)
  10807.     __builtin_s390_vfaehs((__vector unsigned short)__a,
  10808.                           (__vector unsigned short)__b, 8, __cc);
  10809. }
  10810.  
  10811. static inline __ATTRS_o_ai __vector unsigned short
  10812. vec_find_any_ne_idx_cc(__vector __bool short __a,
  10813.                        __vector __bool short __b, int *__cc) {
  10814.   return __builtin_s390_vfaehs((__vector unsigned short)__a,
  10815.                                (__vector unsigned short)__b, 8, __cc);
  10816. }
  10817.  
  10818. static inline __ATTRS_o_ai __vector unsigned short
  10819. vec_find_any_ne_idx_cc(__vector unsigned short __a,
  10820.                        __vector unsigned short __b, int *__cc) {
  10821.   return __builtin_s390_vfaehs(__a, __b, 8, __cc);
  10822. }
  10823.  
  10824. static inline __ATTRS_o_ai __vector signed int
  10825. vec_find_any_ne_idx_cc(__vector signed int __a,
  10826.                        __vector signed int __b, int *__cc) {
  10827.   return (__vector signed int)
  10828.     __builtin_s390_vfaefs((__vector unsigned int)__a,
  10829.                           (__vector unsigned int)__b, 8, __cc);
  10830. }
  10831.  
  10832. static inline __ATTRS_o_ai __vector unsigned int
  10833. vec_find_any_ne_idx_cc(__vector __bool int __a,
  10834.                        __vector __bool int __b, int *__cc) {
  10835.   return __builtin_s390_vfaefs((__vector unsigned int)__a,
  10836.                                (__vector unsigned int)__b, 8, __cc);
  10837. }
  10838.  
  10839. static inline __ATTRS_o_ai __vector unsigned int
  10840. vec_find_any_ne_idx_cc(__vector unsigned int __a,
  10841.                        __vector unsigned int __b, int *__cc) {
  10842.   return __builtin_s390_vfaefs(__a, __b, 8, __cc);
  10843. }
  10844.  
  10845. /*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
  10846.  
  10847. static inline __ATTRS_o_ai __vector signed char
  10848. vec_find_any_ne_or_0_idx(__vector signed char __a,
  10849.                          __vector signed char __b) {
  10850.   return (__vector signed char)
  10851.     __builtin_s390_vfaezb((__vector unsigned char)__a,
  10852.                           (__vector unsigned char)__b, 8);
  10853. }
  10854.  
  10855. static inline __ATTRS_o_ai __vector unsigned char
  10856. vec_find_any_ne_or_0_idx(__vector __bool char __a,
  10857.                          __vector __bool char __b) {
  10858.   return __builtin_s390_vfaezb((__vector unsigned char)__a,
  10859.                                (__vector unsigned char)__b, 8);
  10860. }
  10861.  
  10862. static inline __ATTRS_o_ai __vector unsigned char
  10863. vec_find_any_ne_or_0_idx(__vector unsigned char __a,
  10864.                          __vector unsigned char __b) {
  10865.   return __builtin_s390_vfaezb(__a, __b, 8);
  10866. }
  10867.  
  10868. static inline __ATTRS_o_ai __vector signed short
  10869. vec_find_any_ne_or_0_idx(__vector signed short __a,
  10870.                          __vector signed short __b) {
  10871.   return (__vector signed short)
  10872.     __builtin_s390_vfaezh((__vector unsigned short)__a,
  10873.                           (__vector unsigned short)__b, 8);
  10874. }
  10875.  
  10876. static inline __ATTRS_o_ai __vector unsigned short
  10877. vec_find_any_ne_or_0_idx(__vector __bool short __a,
  10878.                          __vector __bool short __b) {
  10879.   return __builtin_s390_vfaezh((__vector unsigned short)__a,
  10880.                                (__vector unsigned short)__b, 8);
  10881. }
  10882.  
  10883. static inline __ATTRS_o_ai __vector unsigned short
  10884. vec_find_any_ne_or_0_idx(__vector unsigned short __a,
  10885.                          __vector unsigned short __b) {
  10886.   return __builtin_s390_vfaezh(__a, __b, 8);
  10887. }
  10888.  
  10889. static inline __ATTRS_o_ai __vector signed int
  10890. vec_find_any_ne_or_0_idx(__vector signed int __a,
  10891.                          __vector signed int __b) {
  10892.   return (__vector signed int)
  10893.     __builtin_s390_vfaezf((__vector unsigned int)__a,
  10894.                           (__vector unsigned int)__b, 8);
  10895. }
  10896.  
  10897. static inline __ATTRS_o_ai __vector unsigned int
  10898. vec_find_any_ne_or_0_idx(__vector __bool int __a,
  10899.                          __vector __bool int __b) {
  10900.   return __builtin_s390_vfaezf((__vector unsigned int)__a,
  10901.                                (__vector unsigned int)__b, 8);
  10902. }
  10903.  
  10904. static inline __ATTRS_o_ai __vector unsigned int
  10905. vec_find_any_ne_or_0_idx(__vector unsigned int __a,
  10906.                          __vector unsigned int __b) {
  10907.   return __builtin_s390_vfaezf(__a, __b, 8);
  10908. }
  10909.  
  10910. /*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
  10911.  
  10912. static inline __ATTRS_o_ai __vector signed char
  10913. vec_find_any_ne_or_0_idx_cc(__vector signed char __a,
  10914.                             __vector signed char __b, int *__cc) {
  10915.   return (__vector signed char)
  10916.     __builtin_s390_vfaezbs((__vector unsigned char)__a,
  10917.                            (__vector unsigned char)__b, 8, __cc);
  10918. }
  10919.  
  10920. static inline __ATTRS_o_ai __vector unsigned char
  10921. vec_find_any_ne_or_0_idx_cc(__vector __bool char __a,
  10922.                             __vector __bool char __b, int *__cc) {
  10923.   return __builtin_s390_vfaezbs((__vector unsigned char)__a,
  10924.                                 (__vector unsigned char)__b, 8, __cc);
  10925. }
  10926.  
  10927. static inline __ATTRS_o_ai __vector unsigned char
  10928. vec_find_any_ne_or_0_idx_cc(__vector unsigned char __a,
  10929.                             __vector unsigned char __b, int *__cc) {
  10930.   return __builtin_s390_vfaezbs(__a, __b, 8, __cc);
  10931. }
  10932.  
  10933. static inline __ATTRS_o_ai __vector signed short
  10934. vec_find_any_ne_or_0_idx_cc(__vector signed short __a,
  10935.                             __vector signed short __b, int *__cc) {
  10936.   return (__vector signed short)
  10937.     __builtin_s390_vfaezhs((__vector unsigned short)__a,
  10938.                            (__vector unsigned short)__b, 8, __cc);
  10939. }
  10940.  
  10941. static inline __ATTRS_o_ai __vector unsigned short
  10942. vec_find_any_ne_or_0_idx_cc(__vector __bool short __a,
  10943.                             __vector __bool short __b, int *__cc) {
  10944.   return __builtin_s390_vfaezhs((__vector unsigned short)__a,
  10945.                                 (__vector unsigned short)__b, 8, __cc);
  10946. }
  10947.  
  10948. static inline __ATTRS_o_ai __vector unsigned short
  10949. vec_find_any_ne_or_0_idx_cc(__vector unsigned short __a,
  10950.                             __vector unsigned short __b, int *__cc) {
  10951.   return __builtin_s390_vfaezhs(__a, __b, 8, __cc);
  10952. }
  10953.  
  10954. static inline __ATTRS_o_ai __vector signed int
  10955. vec_find_any_ne_or_0_idx_cc(__vector signed int __a,
  10956.                             __vector signed int __b, int *__cc) {
  10957.   return (__vector signed int)
  10958.     __builtin_s390_vfaezfs((__vector unsigned int)__a,
  10959.                            (__vector unsigned int)__b, 8, __cc);
  10960. }
  10961.  
  10962. static inline __ATTRS_o_ai __vector unsigned int
  10963. vec_find_any_ne_or_0_idx_cc(__vector __bool int __a,
  10964.                             __vector __bool int __b, int *__cc) {
  10965.   return __builtin_s390_vfaezfs((__vector unsigned int)__a,
  10966.                                 (__vector unsigned int)__b, 8, __cc);
  10967. }
  10968.  
  10969. static inline __ATTRS_o_ai __vector unsigned int
  10970. vec_find_any_ne_or_0_idx_cc(__vector unsigned int __a,
  10971.                             __vector unsigned int __b, int *__cc) {
  10972.   return __builtin_s390_vfaezfs(__a, __b, 8, __cc);
  10973. }
  10974.  
  10975. /*-- vec_search_string_cc ---------------------------------------------------*/
  10976.  
  10977. #if __ARCH__ >= 13
  10978.  
  10979. static inline __ATTRS_o_ai __vector unsigned char
  10980. vec_search_string_cc(__vector signed char __a, __vector signed char __b,
  10981.                      __vector unsigned char __c, int *__cc) {
  10982.   return __builtin_s390_vstrsb((__vector unsigned char)__a,
  10983.                                (__vector unsigned char)__b, __c, __cc);
  10984. }
  10985.  
  10986. static inline __ATTRS_o_ai __vector unsigned char
  10987. vec_search_string_cc(__vector __bool char __a, __vector __bool char __b,
  10988.                      __vector unsigned char __c, int *__cc) {
  10989.   return __builtin_s390_vstrsb((__vector unsigned char)__a,
  10990.                                (__vector unsigned char)__b, __c, __cc);
  10991. }
  10992.  
  10993. static inline __ATTRS_o_ai __vector unsigned char
  10994. vec_search_string_cc(__vector unsigned char __a, __vector unsigned char __b,
  10995.                      __vector unsigned char __c, int *__cc) {
  10996.   return __builtin_s390_vstrsb(__a, __b, __c, __cc);
  10997. }
  10998.  
  10999. static inline __ATTRS_o_ai __vector unsigned char
  11000. vec_search_string_cc(__vector signed short __a, __vector signed short __b,
  11001.                      __vector unsigned char __c, int *__cc) {
  11002.   return __builtin_s390_vstrsh((__vector unsigned short)__a,
  11003.                                (__vector unsigned short)__b, __c, __cc);
  11004. }
  11005.  
  11006. static inline __ATTRS_o_ai __vector unsigned char
  11007. vec_search_string_cc(__vector __bool short __a, __vector __bool short __b,
  11008.                      __vector unsigned char __c, int *__cc) {
  11009.   return __builtin_s390_vstrsh((__vector unsigned short)__a,
  11010.                                (__vector unsigned short)__b, __c, __cc);
  11011. }
  11012.  
  11013. static inline __ATTRS_o_ai __vector unsigned char
  11014. vec_search_string_cc(__vector unsigned short __a, __vector unsigned short __b,
  11015.                      __vector unsigned char __c, int *__cc) {
  11016.   return __builtin_s390_vstrsh(__a, __b, __c, __cc);
  11017. }
  11018.  
  11019. static inline __ATTRS_o_ai __vector unsigned char
  11020. vec_search_string_cc(__vector signed int __a, __vector signed int __b,
  11021.                      __vector unsigned char __c, int *__cc) {
  11022.   return __builtin_s390_vstrsf((__vector unsigned int)__a,
  11023.                                (__vector unsigned int)__b, __c, __cc);
  11024. }
  11025.  
  11026. static inline __ATTRS_o_ai __vector unsigned char
  11027. vec_search_string_cc(__vector __bool int __a, __vector __bool int __b,
  11028.                      __vector unsigned char __c, int *__cc) {
  11029.   return __builtin_s390_vstrsf((__vector unsigned int)__a,
  11030.                                (__vector unsigned int)__b, __c, __cc);
  11031. }
  11032.  
  11033. static inline __ATTRS_o_ai __vector unsigned char
  11034. vec_search_string_cc(__vector unsigned int __a, __vector unsigned int __b,
  11035.                      __vector unsigned char __c, int *__cc) {
  11036.   return __builtin_s390_vstrsf(__a, __b, __c, __cc);
  11037. }
  11038.  
  11039. #endif
  11040.  
  11041. /*-- vec_search_string_until_zero_cc ----------------------------------------*/
  11042.  
  11043. #if __ARCH__ >= 13
  11044.  
  11045. static inline __ATTRS_o_ai __vector unsigned char
  11046. vec_search_string_until_zero_cc(__vector signed char __a,
  11047.                                 __vector signed char __b,
  11048.                                 __vector unsigned char __c, int *__cc) {
  11049.   return __builtin_s390_vstrszb((__vector unsigned char)__a,
  11050.                                 (__vector unsigned char)__b, __c, __cc);
  11051. }
  11052.  
  11053. static inline __ATTRS_o_ai __vector unsigned char
  11054. vec_search_string_until_zero_cc(__vector __bool char __a,
  11055.                                 __vector __bool char __b,
  11056.                                 __vector unsigned char __c, int *__cc) {
  11057.   return __builtin_s390_vstrszb((__vector unsigned char)__a,
  11058.                                 (__vector unsigned char)__b, __c, __cc);
  11059. }
  11060.  
  11061. static inline __ATTRS_o_ai __vector unsigned char
  11062. vec_search_string_until_zero_cc(__vector unsigned char __a,
  11063.                                 __vector unsigned char __b,
  11064.                                 __vector unsigned char __c, int *__cc) {
  11065.   return __builtin_s390_vstrszb(__a, __b, __c, __cc);
  11066. }
  11067.  
  11068. static inline __ATTRS_o_ai __vector unsigned char
  11069. vec_search_string_until_zero_cc(__vector signed short __a,
  11070.                                 __vector signed short __b,
  11071.                                 __vector unsigned char __c, int *__cc) {
  11072.   return __builtin_s390_vstrszh((__vector unsigned short)__a,
  11073.                                 (__vector unsigned short)__b, __c, __cc);
  11074. }
  11075.  
  11076. static inline __ATTRS_o_ai __vector unsigned char
  11077. vec_search_string_until_zero_cc(__vector __bool short __a,
  11078.                                 __vector __bool short __b,
  11079.                                 __vector unsigned char __c, int *__cc) {
  11080.   return __builtin_s390_vstrszh((__vector unsigned short)__a,
  11081.                                 (__vector unsigned short)__b, __c, __cc);
  11082. }
  11083.  
  11084. static inline __ATTRS_o_ai __vector unsigned char
  11085. vec_search_string_until_zero_cc(__vector unsigned short __a,
  11086.                                 __vector unsigned short __b,
  11087.                                 __vector unsigned char __c, int *__cc) {
  11088.   return __builtin_s390_vstrszh(__a, __b, __c, __cc);
  11089. }
  11090.  
  11091. static inline __ATTRS_o_ai __vector unsigned char
  11092. vec_search_string_until_zero_cc(__vector signed int __a,
  11093.                                 __vector signed int __b,
  11094.                                 __vector unsigned char __c, int *__cc) {
  11095.   return __builtin_s390_vstrszf((__vector unsigned int)__a,
  11096.                                 (__vector unsigned int)__b, __c, __cc);
  11097. }
  11098.  
  11099. static inline __ATTRS_o_ai __vector unsigned char
  11100. vec_search_string_until_zero_cc(__vector __bool int __a,
  11101.                                 __vector __bool int __b,
  11102.                                 __vector unsigned char __c, int *__cc) {
  11103.   return __builtin_s390_vstrszf((__vector unsigned int)__a,
  11104.                                 (__vector unsigned int)__b, __c, __cc);
  11105. }
  11106.  
  11107. static inline __ATTRS_o_ai __vector unsigned char
  11108. vec_search_string_until_zero_cc(__vector unsigned int __a,
  11109.                                 __vector unsigned int __b,
  11110.                                 __vector unsigned char __c, int *__cc) {
  11111.   return __builtin_s390_vstrszf(__a, __b, __c, __cc);
  11112. }
  11113.  
  11114. #endif
  11115.  
  11116. #undef __constant_pow2_range
  11117. #undef __constant_range
  11118. #undef __constant
  11119. #undef __ATTRS_o
  11120. #undef __ATTRS_o_ai
  11121. #undef __ATTRS_ai
  11122.  
  11123. #else
  11124.  
  11125. #error "Use -fzvector to enable vector extensions"
  11126.  
  11127. #endif
  11128.