1 /* Copyright (C) 2011-2023 Free Software Foundation, Inc.
3 This file is part of GCC.
5 GCC is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3, or (at your option)
10 GCC is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 Under Section 7 of GPL version 3, you are granted additional
16 permissions described in the GCC Runtime Library Exception, version
17 3.1, as published by the Free Software Foundation.
19 You should have received a copy of the GNU General Public License and
20 a copy of the GCC Runtime Library Exception along with this program;
21 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
22 <http://www.gnu.org/licenses/>. */
24 #ifndef _VISINTRIN_H_INCLUDED
25 #define _VISINTRIN_H_INCLUDED
29 typedef int __v2si
__attribute__ ((__vector_size__ (8)));
30 typedef int __v1si
__attribute__ ((__vector_size__ (4)));
31 typedef short __v4hi
__attribute__ ((__vector_size__ (8)));
32 typedef short __v2hi
__attribute__ ((__vector_size__ (4)));
33 typedef unsigned char __v8qi
__attribute__ ((__vector_size__ (8)));
34 typedef unsigned char __v4qi
__attribute__ ((__vector_size__ (4)));
35 typedef int __i64
__attribute__ ((__mode__ (DI
)));
40 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
41 __vis_write_gsr (__i64 __A
)
43 __builtin_vis_write_gsr (__A
);
47 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
50 return __builtin_vis_read_gsr ();
53 #endif /* __VIS__ >= 0x200 */
55 extern __inline
void *
56 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
57 __vis_alignaddr (void *__A
, long __B
)
59 return __builtin_vis_alignaddr (__A
, __B
);
62 extern __inline
void *
63 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
64 __vis_alignaddrl (void *__A
, long __B
)
66 return __builtin_vis_alignaddrl (__A
, __B
);
70 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
71 __vis_faligndatadi (__i64 __A
, __i64 __B
)
73 return __builtin_vis_faligndatadi (__A
, __B
);
76 extern __inline __v2si
77 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
78 __vis_faligndatav2si (__v2si __A
, __v2si __B
)
80 return __builtin_vis_faligndatav2si (__A
, __B
);
83 extern __inline __v4hi
84 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
85 __vis_faligndatav4hi (__v4hi __A
, __v4hi __B
)
87 return __builtin_vis_faligndatav4hi (__A
, __B
);
90 extern __inline __v8qi
91 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
92 __vis_faligndatav8qi (__v8qi __A
, __v8qi __B
)
94 return __builtin_vis_faligndatav8qi (__A
, __B
);
97 extern __inline __v4hi
98 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
99 __vis_fexpand (__v4qi __A
)
101 return __builtin_vis_fexpand (__A
);
104 extern __inline __v4hi
105 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
106 __vis_fmul8x16 (__v4qi __A
, __v4hi __B
)
108 return __builtin_vis_fmul8x16 (__A
, __B
);
111 extern __inline __v4hi
112 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
113 __vis_fmul8x16au (__v4qi __A
, __v2hi __B
)
115 return __builtin_vis_fmul8x16au (__A
, __B
);
118 extern __inline __v4hi
119 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
120 __vis_fmul8x16al (__v4qi __A
, __v2hi __B
)
122 return __builtin_vis_fmul8x16al (__A
, __B
);
125 extern __inline __v4hi
126 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
127 __vis_fmul8sux16 (__v8qi __A
, __v4hi __B
)
129 return __builtin_vis_fmul8sux16 (__A
, __B
);
132 extern __inline __v4hi
133 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
134 __vis_fmul8ulx16 (__v8qi __A
, __v4hi __B
)
136 return __builtin_vis_fmul8ulx16 (__A
, __B
);
139 extern __inline __v2si
140 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
141 __vis_fmuld8sux16 (__v4qi __A
, __v2hi __B
)
143 return __builtin_vis_fmuld8sux16 (__A
, __B
);
146 extern __inline __v2si
147 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
148 __vis_fmuld8ulx16 (__v4qi __A
, __v2hi __B
)
150 return __builtin_vis_fmuld8ulx16 (__A
, __B
);
153 extern __inline __v4qi
154 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
155 __vis_fpack16 (__v4hi __A
)
157 return __builtin_vis_fpack16 (__A
);
160 extern __inline __v8qi
161 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
162 __vis_fpack32 (__v2si __A
, __v8qi __B
)
164 return __builtin_vis_fpack32 (__A
, __B
);
167 extern __inline __v2hi
168 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
169 __vis_fpackfix (__v2si __A
)
171 return __builtin_vis_fpackfix (__A
);
174 extern __inline __v8qi
175 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
176 __vis_fpmerge (__v4qi __A
, __v4qi __B
)
178 return __builtin_vis_fpmerge (__A
, __B
);
181 extern __inline __i64
182 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
183 __vis_pdist (__v8qi __A
, __v8qi __B
, __i64 __C
)
185 return __builtin_vis_pdist (__A
, __B
, __C
);
189 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
190 __vis_edge8 (void *__A
, void *__B
)
192 return __builtin_vis_edge8 (__A
, __B
);
196 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
197 __vis_edge8l (void *__A
, void *__B
)
199 return __builtin_vis_edge8l (__A
, __B
);
203 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
204 __vis_edge16 (void *__A
, void *__B
)
206 return __builtin_vis_edge16 (__A
, __B
);
210 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
211 __vis_edge16l (void *__A
, void *__B
)
213 return __builtin_vis_edge16l (__A
, __B
);
217 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
218 __vis_edge32 (void *__A
, void *__B
)
220 return __builtin_vis_edge32 (__A
, __B
);
224 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
225 __vis_edge32l (void *__A
, void *__B
)
227 return __builtin_vis_edge32l (__A
, __B
);
231 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
232 __vis_fcmple16 (__v4hi __A
, __v4hi __B
)
234 return __builtin_vis_fcmple16 (__A
, __B
);
238 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
239 __vis_fcmple32 (__v2si __A
, __v2si __B
)
241 return __builtin_vis_fcmple32 (__A
, __B
);
245 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
246 __vis_fcmpne16 (__v4hi __A
, __v4hi __B
)
248 return __builtin_vis_fcmpne16 (__A
, __B
);
252 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
253 __vis_fcmpne32 (__v2si __A
, __v2si __B
)
255 return __builtin_vis_fcmpne32 (__A
, __B
);
259 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
260 __vis_fcmpgt16 (__v4hi __A
, __v4hi __B
)
262 return __builtin_vis_fcmpgt16 (__A
, __B
);
266 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
267 __vis_fcmpgt32 (__v2si __A
, __v2si __B
)
269 return __builtin_vis_fcmpgt32 (__A
, __B
);
273 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
274 __vis_fcmpeq16 (__v4hi __A
, __v4hi __B
)
276 return __builtin_vis_fcmpeq16 (__A
, __B
);
280 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
281 __vis_fcmpeq32 (__v2si __A
, __v2si __B
)
283 return __builtin_vis_fcmpeq32 (__A
, __B
);
286 extern __inline __v4hi
287 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
288 __vis_fpadd16 (__v4hi __A
, __v4hi __B
)
290 return __builtin_vis_fpadd16 (__A
, __B
);
293 extern __inline __v2hi
294 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
295 __vis_fpadd16s (__v2hi __A
, __v2hi __B
)
297 return __builtin_vis_fpadd16s (__A
, __B
);
300 extern __inline __v2si
301 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
302 __vis_fpadd32 (__v2si __A
, __v2si __B
)
304 return __builtin_vis_fpadd32 (__A
, __B
);
307 extern __inline __v1si
308 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
309 __vis_fpadd32s (__v1si __A
, __v1si __B
)
311 return __builtin_vis_fpadd32s (__A
, __B
);
314 extern __inline __v4hi
315 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
316 __vis_fpsub16 (__v4hi __A
, __v4hi __B
)
318 return __builtin_vis_fpsub16 (__A
, __B
);
321 extern __inline __v2hi
322 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
323 __vis_fpsub16s (__v2hi __A
, __v2hi __B
)
325 return __builtin_vis_fpsub16s (__A
, __B
);
328 extern __inline __v2si
329 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
330 __vis_fpsub32 (__v2si __A
, __v2si __B
)
332 return __builtin_vis_fpsub32 (__A
, __B
);
335 extern __inline __v1si
336 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
337 __vis_fpsub32s (__v1si __A
, __v1si __B
)
339 return __builtin_vis_fpsub32s (__A
, __B
);
343 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
344 __vis_array8 (long __A
, long __B
)
346 return __builtin_vis_array8 (__A
, __B
);
350 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
351 __vis_array16 (long __A
, long __B
)
353 return __builtin_vis_array16 (__A
, __B
);
357 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
358 __vis_array32 (long __A
, long __B
)
360 return __builtin_vis_array32 (__A
, __B
);
366 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
367 __vis_bmask (long __A
, long __B
)
369 return __builtin_vis_bmask (__A
, __B
);
372 extern __inline __i64
373 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
374 __vis_bshuffledi (__i64 __A
, __i64 __B
)
376 return __builtin_vis_bshuffledi (__A
, __B
);
379 extern __inline __v2si
380 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
381 __vis_bshufflev2si (__v2si __A
, __v2si __B
)
383 return __builtin_vis_bshufflev2si (__A
, __B
);
386 extern __inline __v4hi
387 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
388 __vis_bshufflev4hi (__v4hi __A
, __v4hi __B
)
390 return __builtin_vis_bshufflev4hi (__A
, __B
);
393 extern __inline __v8qi
394 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
395 __vis_bshufflev8qi (__v8qi __A
, __v8qi __B
)
397 return __builtin_vis_bshufflev8qi (__A
, __B
);
401 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
402 __vis_edge8n (void *__A
, void *__B
)
404 return __builtin_vis_edge8n (__A
, __B
);
408 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
409 __vis_edge8ln (void *__A
, void *__B
)
411 return __builtin_vis_edge8ln (__A
, __B
);
415 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
416 __vis_edge16n (void *__A
, void *__B
)
418 return __builtin_vis_edge16n (__A
, __B
);
422 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
423 __vis_edge16ln (void *__A
, void *__B
)
425 return __builtin_vis_edge16ln (__A
, __B
);
429 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
430 __vis_edge32n (void *__A
, void *__B
)
432 return __builtin_vis_edge32n (__A
, __B
);
436 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
437 __vis_edge32ln (void *__A
, void *__B
)
439 return __builtin_vis_edge32ln (__A
, __B
);
442 #endif /* __VIS__ >= 0x200 */
447 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
448 __vis_cmask8 (long __A
)
450 return __builtin_vis_cmask8 (__A
);
454 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
455 __vis_cmask16 (long __A
)
457 return __builtin_vis_cmask16 (__A
);
461 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
462 __vis_cmask32 (long __A
)
464 return __builtin_vis_cmask32 (__A
);
467 extern __inline __v4hi
468 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
469 __vis_fchksm16 (__v4hi __A
, __v4hi __B
)
471 return __builtin_vis_fchksm16 (__A
, __B
);
474 extern __inline __v4hi
475 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
476 __vis_fsll16 (__v4hi __A
, __v4hi __B
)
478 return __builtin_vis_fsll16 (__A
, __B
);
481 extern __inline __v4hi
482 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
483 __vis_fslas16 (__v4hi __A
, __v4hi __B
)
485 return __builtin_vis_fslas16 (__A
, __B
);
488 extern __inline __v4hi
489 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
490 __vis_fsrl16 (__v4hi __A
, __v4hi __B
)
492 return __builtin_vis_fsrl16 (__A
, __B
);
495 extern __inline __v4hi
496 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
497 __vis_fsra16 (__v4hi __A
, __v4hi __B
)
499 return __builtin_vis_fsra16 (__A
, __B
);
502 extern __inline __v2si
503 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
504 __vis_fsll32 (__v2si __A
, __v2si __B
)
506 return __builtin_vis_fsll32 (__A
, __B
);
509 extern __inline __v2si
510 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
511 __vis_fslas32 (__v2si __A
, __v2si __B
)
513 return __builtin_vis_fslas32 (__A
, __B
);
516 extern __inline __v2si
517 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
518 __vis_fsrl32 (__v2si __A
, __v2si __B
)
520 return __builtin_vis_fsrl32 (__A
, __B
);
523 extern __inline __v2si
524 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
525 __vis_fsra32 (__v2si __A
, __v2si __B
)
527 return __builtin_vis_fsra32 (__A
, __B
);
531 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
532 __vis_pdistn (__v8qi __A
, __v8qi __B
)
534 return __builtin_vis_pdistn (__A
, __B
);
537 extern __inline __v4hi
538 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
539 __vis_fmean16 (__v4hi __A
, __v4hi __B
)
541 return __builtin_vis_fmean16 (__A
, __B
);
544 extern __inline __i64
545 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
546 __vis_fpadd64 (__i64 __A
, __i64 __B
)
548 return __builtin_vis_fpadd64 (__A
, __B
);
551 extern __inline __i64
552 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
553 __vis_fpsub64 (__i64 __A
, __i64 __B
)
555 return __builtin_vis_fpsub64 (__A
, __B
);
558 extern __inline __v4hi
559 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
560 __vis_fpadds16 (__v4hi __A
, __v4hi __B
)
562 return __builtin_vis_fpadds16 (__A
, __B
);
565 extern __inline __v2hi
566 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
567 __vis_fpadds16s (__v2hi __A
, __v2hi __B
)
569 return __builtin_vis_fpadds16s (__A
, __B
);
572 extern __inline __v4hi
573 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
574 __vis_fpsubs16 (__v4hi __A
, __v4hi __B
)
576 return __builtin_vis_fpsubs16 (__A
, __B
);
579 extern __inline __v2hi
580 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
581 __vis_fpsubs16s (__v2hi __A
, __v2hi __B
)
583 return __builtin_vis_fpsubs16s (__A
, __B
);
586 extern __inline __v2si
587 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
588 __vis_fpadds32 (__v2si __A
, __v2si __B
)
590 return __builtin_vis_fpadds32 (__A
, __B
);
593 extern __inline __v1si
594 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
595 __vis_fpadds32s (__v1si __A
, __v1si __B
)
597 return __builtin_vis_fpadds32s (__A
, __B
);
600 extern __inline __v2si
601 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
602 __vis_fpsubs32 (__v2si __A
, __v2si __B
)
604 return __builtin_vis_fpsubs32 (__A
, __B
);
607 extern __inline __v1si
608 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
609 __vis_fpsubs32s (__v1si __A
, __v1si __B
)
611 return __builtin_vis_fpsubs32s (__A
, __B
);
615 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
616 __vis_fucmple8 (__v8qi __A
, __v8qi __B
)
618 return __builtin_vis_fucmple8 (__A
, __B
);
622 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
623 __vis_fucmpne8 (__v8qi __A
, __v8qi __B
)
625 return __builtin_vis_fucmpne8 (__A
, __B
);
629 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
630 __vis_fucmpgt8 (__v8qi __A
, __v8qi __B
)
632 return __builtin_vis_fucmpgt8 (__A
, __B
);
636 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
637 __vis_fucmpeq8 (__v8qi __A
, __v8qi __B
)
639 return __builtin_vis_fucmpeq8 (__A
, __B
);
642 extern __inline
float
643 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
644 __vis_fhadds (float __A
, float __B
)
646 return __builtin_vis_fhadds (__A
, __B
);
649 extern __inline
double
650 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
651 __vis_fhaddd (double __A
, double __B
)
653 return __builtin_vis_fhaddd (__A
, __B
);
656 extern __inline
float
657 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
658 __vis_fhsubs (float __A
, float __B
)
660 return __builtin_vis_fhsubs (__A
, __B
);
663 extern __inline
double
664 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
665 __vis_fhsubd (double __A
, double __B
)
667 return __builtin_vis_fhsubd (__A
, __B
);
670 extern __inline
float
671 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
672 __vis_fnhadds (float __A
, float __B
)
674 return __builtin_vis_fnhadds (__A
, __B
);
677 extern __inline
double
678 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
679 __vis_fnhaddd (double __A
, double __B
)
681 return __builtin_vis_fnhaddd (__A
, __B
);
684 extern __inline __i64
685 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
686 __vis_umulxhi (__i64 __A
, __i64 __B
)
688 return __builtin_vis_umulxhi (__A
, __B
);
691 extern __inline __i64
692 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
693 __vis_xmulx (__i64 __A
, __i64 __B
)
695 return __builtin_vis_xmulx (__A
, __B
);
698 extern __inline __i64
699 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
700 __vis_xmulxhi (__i64 __A
, __i64 __B
)
702 return __builtin_vis_xmulxhi (__A
, __B
);
705 #endif /* __VIS__ >= 0x300 */
709 extern __inline __v8qi
710 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
711 __vis_fpadd8 (__v8qi __A
, __v8qi __B
)
713 return __builtin_vis_fpadd8 (__A
, __B
);
716 extern __inline __v8qi
717 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
718 __vis_fpadds8 (__v8qi __A
, __v8qi __B
)
720 return __builtin_vis_fpadds8 (__A
, __B
);
723 extern __inline __v8qi
724 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
725 __vis_fpaddus8 (__v8qi __A
, __v8qi __B
)
727 return __builtin_vis_fpaddus8 (__A
, __B
);
730 extern __inline __v4hi
731 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
732 __vis_fpaddus16 (__v4hi __A
, __v4hi __B
)
734 return __builtin_vis_fpaddus16 (__A
, __B
);
738 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
739 __vis_fpcmple8 (__v8qi __A
, __v8qi __B
)
741 return __builtin_vis_fpcmple8 (__A
, __B
);
745 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
746 __vis_fpcmpgt8 (__v8qi __A
, __v8qi __B
)
748 return __builtin_vis_fpcmpgt8 (__A
, __B
);
752 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
753 __vis_fpcmpule16 (__v4hi __A
, __v4hi __B
)
755 return __builtin_vis_fpcmpule16 (__A
, __B
);
759 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
760 __vis_fpcmpugt16 (__v4hi __A
, __v4hi __B
)
762 return __builtin_vis_fpcmpugt16 (__A
, __B
);
766 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
767 __vis_fpcmpule32 (__v2si __A
, __v2si __B
)
769 return __builtin_vis_fpcmpule32 (__A
, __B
);
773 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
774 __vis_fpcmpugt32 (__v2si __A
, __v2si __B
)
776 return __builtin_vis_fpcmpugt32 (__A
, __B
);
779 extern __inline __v8qi
780 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
781 __vis_fpmax8 (__v8qi __A
, __v8qi __B
)
783 return __builtin_vis_fpmax8 (__A
, __B
);
786 extern __inline __v4hi
787 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
788 __vis_fpmax16 (__v4hi __A
, __v4hi __B
)
790 return __builtin_vis_fpmax16 (__A
, __B
);
793 extern __inline __v2si
794 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
795 __vis_fpmax32 (__v2si __A
, __v2si __B
)
797 return __builtin_vis_fpmax32 (__A
, __B
);
800 extern __inline __v8qi
801 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
802 __vis_fpmaxu8 (__v8qi __A
, __v8qi __B
)
804 return __builtin_vis_fpmaxu8 (__A
, __B
);
807 extern __inline __v4hi
808 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
809 __vis_fpmaxu16 (__v4hi __A
, __v4hi __B
)
811 return __builtin_vis_fpmaxu16 (__A
, __B
);
814 extern __inline __v2si
815 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
816 __vis_fpmaxu32 (__v2si __A
, __v2si __B
)
818 return __builtin_vis_fpmaxu32 (__A
, __B
);
821 extern __inline __v8qi
822 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
823 __vis_fpmin8 (__v8qi __A
, __v8qi __B
)
825 return __builtin_vis_fpmin8 (__A
, __B
);
828 extern __inline __v4hi
829 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
830 __vis_fpmin16 (__v4hi __A
, __v4hi __B
)
832 return __builtin_vis_fpmin16 (__A
, __B
);
835 extern __inline __v2si
836 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
837 __vis_fpmin32 (__v2si __A
, __v2si __B
)
839 return __builtin_vis_fpmin32 (__A
, __B
);
842 extern __inline __v8qi
843 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
844 __vis_fpminu8 (__v8qi __A
, __v8qi __B
)
846 return __builtin_vis_fpminu8 (__A
, __B
);
849 extern __inline __v4hi
850 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
851 __vis_fpminu16 (__v4hi __A
, __v4hi __B
)
853 return __builtin_vis_fpminu16 (__A
, __B
);
856 extern __inline __v2si
857 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
858 __vis_fpminu32 (__v2si __A
, __v2si __B
)
860 return __builtin_vis_fpminu32 (__A
, __B
);
863 extern __inline __v8qi
864 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
865 __vis_fpsub8 (__v8qi __A
, __v8qi __B
)
867 return __builtin_vis_fpsub8 (__A
, __B
);
870 extern __inline __v8qi
871 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
872 __vis_fpsubs8 (__v8qi __A
, __v8qi __B
)
874 return __builtin_vis_fpsubs8 (__A
, __B
);
877 extern __inline __v8qi
878 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
879 __vis_fpsubus8 (__v8qi __A
, __v8qi __B
)
881 return __builtin_vis_fpsubus8 (__A
, __B
);
884 extern __inline __v4hi
885 __attribute__ ((__gnu_inline__
, __always_inline__
, __artificial__
))
886 __vis_fpsubus16 (__v4hi __A
, __v4hi __B
)
888 return __builtin_vis_fpsubus16 (__A
, __B
);
891 #endif /* __VIS__ >= 0x400 */
895 #endif /* _VISINTRIN_H_INCLUDED */