Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
14 | pmbaty | 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 |