1 /* Copyright (C) 2011-2013 Free Software Foundation, Inc.
2 
3    This file is part of GCC.
4 
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)
8    any later version.
9 
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.
14 
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.
18 
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/>.  */
23 
24 #ifndef _VISINTRIN_H_INCLUDED
25 #define _VISINTRIN_H_INCLUDED
26 
27 #ifdef __VIS__
28 
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)));
36 
37 #if __VIS__ >= 0x200
38 
39 extern __inline void
40 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_write_gsr(__i64 __A)41 __vis_write_gsr (__i64 __A)
42 {
43   __builtin_vis_write_gsr (__A);
44 }
45 
46 extern __inline __i64
47 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_read_gsr(void)48 __vis_read_gsr (void)
49 {
50   return __builtin_vis_read_gsr ();
51 }
52 
53 #endif /* __VIS__ >= 0x200 */
54 
55 extern __inline void *
56 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_alignaddr(void * __A,long __B)57 __vis_alignaddr (void *__A, long __B)
58 {
59   return __builtin_vis_alignaddr (__A, __B);
60 }
61 
62 extern __inline void *
63 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_alignaddrl(void * __A,long __B)64 __vis_alignaddrl (void *__A, long __B)
65 {
66   return __builtin_vis_alignaddrl (__A, __B);
67 }
68 
69 extern __inline __i64
70 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_faligndatadi(__i64 __A,__i64 __B)71 __vis_faligndatadi (__i64 __A, __i64 __B)
72 {
73   return __builtin_vis_faligndatadi (__A, __B);
74 }
75 
76 extern __inline __v2si
77 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_faligndatav2si(__v2si __A,__v2si __B)78 __vis_faligndatav2si (__v2si __A, __v2si __B)
79 {
80   return __builtin_vis_faligndatav2si (__A, __B);
81 }
82 
83 extern __inline __v4hi
84 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_faligndatav4hi(__v4hi __A,__v4hi __B)85 __vis_faligndatav4hi (__v4hi __A, __v4hi __B)
86 {
87   return __builtin_vis_faligndatav4hi (__A, __B);
88 }
89 
90 extern __inline __v8qi
91 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_faligndatav8qi(__v8qi __A,__v8qi __B)92 __vis_faligndatav8qi (__v8qi __A, __v8qi __B)
93 {
94   return __builtin_vis_faligndatav8qi (__A, __B);
95 }
96 
97 extern __inline __v4hi
98 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fexpand(__v4qi __A)99 __vis_fexpand (__v4qi __A)
100 {
101   return __builtin_vis_fexpand (__A);
102 }
103 
104 extern __inline __v4hi
105 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fmul8x16(__v4qi __A,__v4hi __B)106 __vis_fmul8x16 (__v4qi __A, __v4hi __B)
107 {
108   return __builtin_vis_fmul8x16 (__A, __B);
109 }
110 
111 extern __inline __v4hi
112 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fmul8x16au(__v4qi __A,__v2hi __B)113 __vis_fmul8x16au (__v4qi __A, __v2hi __B)
114 {
115   return __builtin_vis_fmul8x16au (__A, __B);
116 }
117 
118 extern __inline __v4hi
119 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fmul8x16al(__v4qi __A,__v2hi __B)120 __vis_fmul8x16al (__v4qi __A, __v2hi __B)
121 {
122   return __builtin_vis_fmul8x16al (__A, __B);
123 }
124 
125 extern __inline __v4hi
126 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fmul8sux16(__v8qi __A,__v4hi __B)127 __vis_fmul8sux16 (__v8qi __A, __v4hi __B)
128 {
129   return __builtin_vis_fmul8sux16 (__A, __B);
130 }
131 
132 extern __inline __v4hi
133 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fmul8ulx16(__v8qi __A,__v4hi __B)134 __vis_fmul8ulx16 (__v8qi __A, __v4hi __B)
135 {
136   return __builtin_vis_fmul8ulx16 (__A, __B);
137 }
138 
139 extern __inline __v2si
140 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fmuld8sux16(__v4qi __A,__v2hi __B)141 __vis_fmuld8sux16 (__v4qi __A, __v2hi __B)
142 {
143   return __builtin_vis_fmuld8sux16 (__A, __B);
144 }
145 
146 extern __inline __v2si
147 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fmuld8ulx16(__v4qi __A,__v2hi __B)148 __vis_fmuld8ulx16 (__v4qi __A, __v2hi __B)
149 {
150   return __builtin_vis_fmuld8ulx16 (__A, __B);
151 }
152 
153 extern __inline __v4qi
154 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpack16(__v4hi __A)155 __vis_fpack16 (__v4hi __A)
156 {
157   return __builtin_vis_fpack16 (__A);
158 }
159 
160 extern __inline __v8qi
161 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpack32(__v2si __A,__v8qi __B)162 __vis_fpack32 (__v2si __A, __v8qi __B)
163 {
164   return __builtin_vis_fpack32 (__A, __B);
165 }
166 
167 extern __inline __v2hi
168 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpackfix(__v2si __A)169 __vis_fpackfix (__v2si __A)
170 {
171   return __builtin_vis_fpackfix (__A);
172 }
173 
174 extern __inline __v8qi
175 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpmerge(__v4qi __A,__v4qi __B)176 __vis_fpmerge (__v4qi __A, __v4qi __B)
177 {
178   return __builtin_vis_fpmerge (__A, __B);
179 }
180 
181 extern __inline __i64
182 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_pdist(__v8qi __A,__v8qi __B,__i64 __C)183 __vis_pdist (__v8qi __A, __v8qi __B, __i64 __C)
184 {
185   return __builtin_vis_pdist (__A, __B, __C);
186 }
187 
188 extern __inline long
189 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_edge8(void * __A,void * __B)190 __vis_edge8 (void *__A, void *__B)
191 {
192   return __builtin_vis_edge8 (__A, __B);
193 }
194 
195 extern __inline long
196 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_edge8l(void * __A,void * __B)197 __vis_edge8l (void *__A, void *__B)
198 {
199   return __builtin_vis_edge8l (__A, __B);
200 }
201 
202 extern __inline long
203 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_edge16(void * __A,void * __B)204 __vis_edge16 (void *__A, void *__B)
205 {
206   return __builtin_vis_edge16 (__A, __B);
207 }
208 
209 extern __inline long
210 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_edge16l(void * __A,void * __B)211 __vis_edge16l (void *__A, void *__B)
212 {
213   return __builtin_vis_edge16l (__A, __B);
214 }
215 
216 extern __inline long
217 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_edge32(void * __A,void * __B)218 __vis_edge32 (void *__A, void *__B)
219 {
220   return __builtin_vis_edge32 (__A, __B);
221 }
222 
223 extern __inline long
224 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_edge32l(void * __A,void * __B)225 __vis_edge32l (void *__A, void *__B)
226 {
227   return __builtin_vis_edge32l (__A, __B);
228 }
229 
230 extern __inline long
231 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fcmple16(__v4hi __A,__v4hi __B)232 __vis_fcmple16 (__v4hi __A, __v4hi __B)
233 {
234   return __builtin_vis_fcmple16 (__A, __B);
235 }
236 
237 extern __inline long
238 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fcmple32(__v2si __A,__v2si __B)239 __vis_fcmple32 (__v2si __A, __v2si __B)
240 {
241   return __builtin_vis_fcmple32 (__A, __B);
242 }
243 
244 extern __inline long
245 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fcmpne16(__v4hi __A,__v4hi __B)246 __vis_fcmpne16 (__v4hi __A, __v4hi __B)
247 {
248   return __builtin_vis_fcmpne16 (__A, __B);
249 }
250 
251 extern __inline long
252 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fcmpne32(__v2si __A,__v2si __B)253 __vis_fcmpne32 (__v2si __A, __v2si __B)
254 {
255   return __builtin_vis_fcmpne32 (__A, __B);
256 }
257 
258 extern __inline long
259 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fcmpgt16(__v4hi __A,__v4hi __B)260 __vis_fcmpgt16 (__v4hi __A, __v4hi __B)
261 {
262   return __builtin_vis_fcmpgt16 (__A, __B);
263 }
264 
265 extern __inline long
266 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fcmpgt32(__v2si __A,__v2si __B)267 __vis_fcmpgt32 (__v2si __A, __v2si __B)
268 {
269   return __builtin_vis_fcmpgt32 (__A, __B);
270 }
271 
272 extern __inline long
273 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fcmpeq16(__v4hi __A,__v4hi __B)274 __vis_fcmpeq16 (__v4hi __A, __v4hi __B)
275 {
276   return __builtin_vis_fcmpeq16 (__A, __B);
277 }
278 
279 extern __inline long
280 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fcmpeq32(__v2si __A,__v2si __B)281 __vis_fcmpeq32 (__v2si __A, __v2si __B)
282 {
283   return __builtin_vis_fcmpeq32 (__A, __B);
284 }
285 
286 extern __inline __v4hi
287 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpadd16(__v4hi __A,__v4hi __B)288 __vis_fpadd16 (__v4hi __A, __v4hi __B)
289 {
290   return __builtin_vis_fpadd16 (__A, __B);
291 }
292 
293 extern __inline __v2hi
294 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpadd16s(__v2hi __A,__v2hi __B)295 __vis_fpadd16s (__v2hi __A, __v2hi __B)
296 {
297   return __builtin_vis_fpadd16s (__A, __B);
298 }
299 
300 extern __inline __v2si
301 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpadd32(__v2si __A,__v2si __B)302 __vis_fpadd32 (__v2si __A, __v2si __B)
303 {
304   return __builtin_vis_fpadd32 (__A, __B);
305 }
306 
307 extern __inline __v1si
308 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpadd32s(__v1si __A,__v1si __B)309 __vis_fpadd32s (__v1si __A, __v1si __B)
310 {
311   return __builtin_vis_fpadd32s (__A, __B);
312 }
313 
314 extern __inline __v4hi
315 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpsub16(__v4hi __A,__v4hi __B)316 __vis_fpsub16 (__v4hi __A, __v4hi __B)
317 {
318   return __builtin_vis_fpsub16 (__A, __B);
319 }
320 
321 extern __inline __v2hi
322 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpsub16s(__v2hi __A,__v2hi __B)323 __vis_fpsub16s (__v2hi __A, __v2hi __B)
324 {
325   return __builtin_vis_fpsub16s (__A, __B);
326 }
327 
328 extern __inline __v2si
329 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpsub32(__v2si __A,__v2si __B)330 __vis_fpsub32 (__v2si __A, __v2si __B)
331 {
332   return __builtin_vis_fpsub32 (__A, __B);
333 }
334 
335 extern __inline __v1si
336 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpsub32s(__v1si __A,__v1si __B)337 __vis_fpsub32s (__v1si __A, __v1si __B)
338 {
339   return __builtin_vis_fpsub32s (__A, __B);
340 }
341 
342 extern __inline long
343 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_array8(long __A,long __B)344 __vis_array8 (long __A, long __B)
345 {
346   return __builtin_vis_array8 (__A, __B);
347 }
348 
349 extern __inline long
350 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_array16(long __A,long __B)351 __vis_array16 (long __A, long __B)
352 {
353   return __builtin_vis_array16 (__A, __B);
354 }
355 
356 extern __inline long
357 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_array32(long __A,long __B)358 __vis_array32 (long __A, long __B)
359 {
360   return __builtin_vis_array32 (__A, __B);
361 }
362 
363 #if __VIS__ >= 0x200
364 
365 extern __inline long
366 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_bmask(long __A,long __B)367 __vis_bmask (long __A, long __B)
368 {
369   return __builtin_vis_bmask (__A, __B);
370 }
371 
372 extern __inline __i64
373 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_bshuffledi(__i64 __A,__i64 __B)374 __vis_bshuffledi (__i64 __A, __i64 __B)
375 {
376   return __builtin_vis_bshuffledi (__A, __B);
377 }
378 
379 extern __inline __v2si
380 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_bshufflev2si(__v2si __A,__v2si __B)381 __vis_bshufflev2si (__v2si __A, __v2si __B)
382 {
383   return __builtin_vis_bshufflev2si (__A, __B);
384 }
385 
386 extern __inline __v4hi
387 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_bshufflev4hi(__v4hi __A,__v4hi __B)388 __vis_bshufflev4hi (__v4hi __A, __v4hi __B)
389 {
390   return __builtin_vis_bshufflev4hi (__A, __B);
391 }
392 
393 extern __inline __v8qi
394 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_bshufflev8qi(__v8qi __A,__v8qi __B)395 __vis_bshufflev8qi (__v8qi __A, __v8qi __B)
396 {
397   return __builtin_vis_bshufflev8qi (__A, __B);
398 }
399 
400 extern __inline long
401 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_edge8n(void * __A,void * __B)402 __vis_edge8n (void *__A, void *__B)
403 {
404   return __builtin_vis_edge8n (__A, __B);
405 }
406 
407 extern __inline long
408 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_edge8ln(void * __A,void * __B)409 __vis_edge8ln (void *__A, void *__B)
410 {
411   return __builtin_vis_edge8ln (__A, __B);
412 }
413 
414 extern __inline long
415 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_edge16n(void * __A,void * __B)416 __vis_edge16n (void *__A, void *__B)
417 {
418   return __builtin_vis_edge16n (__A, __B);
419 }
420 
421 extern __inline long
422 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_edge16ln(void * __A,void * __B)423 __vis_edge16ln (void *__A, void *__B)
424 {
425   return __builtin_vis_edge16ln (__A, __B);
426 }
427 
428 extern __inline long
429 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_edge32n(void * __A,void * __B)430 __vis_edge32n (void *__A, void *__B)
431 {
432   return __builtin_vis_edge32n (__A, __B);
433 }
434 
435 extern __inline long
436 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_edge32ln(void * __A,void * __B)437 __vis_edge32ln (void *__A, void *__B)
438 {
439   return __builtin_vis_edge32ln (__A, __B);
440 }
441 
442 #endif /* __VIS__ >= 0x200 */
443 
444 #if __VIS__ >= 0x300
445 
446 extern __inline void
447 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_cmask8(long __A)448 __vis_cmask8 (long __A)
449 {
450   return __builtin_vis_cmask8 (__A);
451 }
452 
453 extern __inline void
454 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_cmask16(long __A)455 __vis_cmask16 (long __A)
456 {
457   return __builtin_vis_cmask16 (__A);
458 }
459 
460 extern __inline void
461 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_cmask32(long __A)462 __vis_cmask32 (long __A)
463 {
464   return __builtin_vis_cmask32 (__A);
465 }
466 
467 extern __inline __v4hi
468 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fchksm16(__v4hi __A,__v4hi __B)469 __vis_fchksm16 (__v4hi __A, __v4hi __B)
470 {
471   return __builtin_vis_fchksm16 (__A, __B);
472 }
473 
474 extern __inline __v4hi
475 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fsll16(__v4hi __A,__v4hi __B)476 __vis_fsll16 (__v4hi __A, __v4hi __B)
477 {
478   return __builtin_vis_fsll16 (__A, __B);
479 }
480 
481 extern __inline __v4hi
482 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fslas16(__v4hi __A,__v4hi __B)483 __vis_fslas16 (__v4hi __A, __v4hi __B)
484 {
485   return __builtin_vis_fslas16 (__A, __B);
486 }
487 
488 extern __inline __v4hi
489 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fsrl16(__v4hi __A,__v4hi __B)490 __vis_fsrl16 (__v4hi __A, __v4hi __B)
491 {
492   return __builtin_vis_fsrl16 (__A, __B);
493 }
494 
495 extern __inline __v4hi
496 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fsra16(__v4hi __A,__v4hi __B)497 __vis_fsra16 (__v4hi __A, __v4hi __B)
498 {
499   return __builtin_vis_fsra16 (__A, __B);
500 }
501 
502 extern __inline __v2si
503 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fsll32(__v2si __A,__v2si __B)504 __vis_fsll32 (__v2si __A, __v2si __B)
505 {
506   return __builtin_vis_fsll32 (__A, __B);
507 }
508 
509 extern __inline __v2si
510 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fslas32(__v2si __A,__v2si __B)511 __vis_fslas32 (__v2si __A, __v2si __B)
512 {
513   return __builtin_vis_fslas32 (__A, __B);
514 }
515 
516 extern __inline __v2si
517 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fsrl32(__v2si __A,__v2si __B)518 __vis_fsrl32 (__v2si __A, __v2si __B)
519 {
520   return __builtin_vis_fsrl32 (__A, __B);
521 }
522 
523 extern __inline __v2si
524 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fsra32(__v2si __A,__v2si __B)525 __vis_fsra32 (__v2si __A, __v2si __B)
526 {
527   return __builtin_vis_fsra32 (__A, __B);
528 }
529 
530 extern __inline long
531 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_pdistn(__v8qi __A,__v8qi __B)532 __vis_pdistn (__v8qi __A, __v8qi __B)
533 {
534   return __builtin_vis_pdistn (__A, __B);
535 }
536 
537 extern __inline __v4hi
538 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fmean16(__v4hi __A,__v4hi __B)539 __vis_fmean16 (__v4hi __A, __v4hi __B)
540 {
541   return __builtin_vis_fmean16 (__A, __B);
542 }
543 
544 extern __inline __i64
545 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpadd64(__i64 __A,__i64 __B)546 __vis_fpadd64 (__i64 __A, __i64 __B)
547 {
548   return __builtin_vis_fpadd64 (__A, __B);
549 }
550 
551 extern __inline __i64
552 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpsub64(__i64 __A,__i64 __B)553 __vis_fpsub64 (__i64 __A, __i64 __B)
554 {
555   return __builtin_vis_fpsub64 (__A, __B);
556 }
557 
558 extern __inline __v4hi
559 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpadds16(__v4hi __A,__v4hi __B)560 __vis_fpadds16 (__v4hi __A, __v4hi __B)
561 {
562   return __builtin_vis_fpadds16 (__A, __B);
563 }
564 
565 extern __inline __v2hi
566 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpadds16s(__v2hi __A,__v2hi __B)567 __vis_fpadds16s (__v2hi __A, __v2hi __B)
568 {
569   return __builtin_vis_fpadds16s (__A, __B);
570 }
571 
572 extern __inline __v4hi
573 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpsubs16(__v4hi __A,__v4hi __B)574 __vis_fpsubs16 (__v4hi __A, __v4hi __B)
575 {
576   return __builtin_vis_fpsubs16 (__A, __B);
577 }
578 
579 extern __inline __v2hi
580 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpsubs16s(__v2hi __A,__v2hi __B)581 __vis_fpsubs16s (__v2hi __A, __v2hi __B)
582 {
583   return __builtin_vis_fpsubs16s (__A, __B);
584 }
585 
586 extern __inline __v2si
587 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpadds32(__v2si __A,__v2si __B)588 __vis_fpadds32 (__v2si __A, __v2si __B)
589 {
590   return __builtin_vis_fpadds32 (__A, __B);
591 }
592 
593 extern __inline __v1si
594 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpadds32s(__v1si __A,__v1si __B)595 __vis_fpadds32s (__v1si __A, __v1si __B)
596 {
597   return __builtin_vis_fpadds32s (__A, __B);
598 }
599 
600 extern __inline __v2si
601 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpsubs32(__v2si __A,__v2si __B)602 __vis_fpsubs32 (__v2si __A, __v2si __B)
603 {
604   return __builtin_vis_fpsubs32 (__A, __B);
605 }
606 
607 extern __inline __v1si
608 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fpsubs32s(__v1si __A,__v1si __B)609 __vis_fpsubs32s (__v1si __A, __v1si __B)
610 {
611   return __builtin_vis_fpsubs32s (__A, __B);
612 }
613 
614 extern __inline long
615 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fucmple8(__v8qi __A,__v8qi __B)616 __vis_fucmple8 (__v8qi __A, __v8qi __B)
617 {
618   return __builtin_vis_fucmple8 (__A, __B);
619 }
620 
621 extern __inline long
622 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fucmpne8(__v8qi __A,__v8qi __B)623 __vis_fucmpne8 (__v8qi __A, __v8qi __B)
624 {
625   return __builtin_vis_fucmpne8 (__A, __B);
626 }
627 
628 extern __inline long
629 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fucmpgt8(__v8qi __A,__v8qi __B)630 __vis_fucmpgt8 (__v8qi __A, __v8qi __B)
631 {
632   return __builtin_vis_fucmpgt8 (__A, __B);
633 }
634 
635 extern __inline long
636 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fucmpeq8(__v8qi __A,__v8qi __B)637 __vis_fucmpeq8 (__v8qi __A, __v8qi __B)
638 {
639   return __builtin_vis_fucmpeq8 (__A, __B);
640 }
641 
642 extern __inline float
643 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fhadds(float __A,float __B)644 __vis_fhadds (float __A, float __B)
645 {
646   return __builtin_vis_fhadds (__A, __B);
647 }
648 
649 extern __inline double
650 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fhaddd(double __A,double __B)651 __vis_fhaddd (double __A, double __B)
652 {
653   return __builtin_vis_fhaddd (__A, __B);
654 }
655 
656 extern __inline float
657 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fhsubs(float __A,float __B)658 __vis_fhsubs (float __A, float __B)
659 {
660   return __builtin_vis_fhsubs (__A, __B);
661 }
662 
663 extern __inline double
664 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fhsubd(double __A,double __B)665 __vis_fhsubd (double __A, double __B)
666 {
667   return __builtin_vis_fhsubd (__A, __B);
668 }
669 
670 extern __inline float
671 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fnhadds(float __A,float __B)672 __vis_fnhadds (float __A, float __B)
673 {
674   return __builtin_vis_fnhadds (__A, __B);
675 }
676 
677 extern __inline double
678 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_fnhaddd(double __A,double __B)679 __vis_fnhaddd (double __A, double __B)
680 {
681   return __builtin_vis_fnhaddd (__A, __B);
682 }
683 
684 extern __inline __i64
685 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_umulxhi(__i64 __A,__i64 __B)686 __vis_umulxhi (__i64 __A, __i64 __B)
687 {
688   return __builtin_vis_umulxhi (__A, __B);
689 }
690 
691 extern __inline __i64
692 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_xmulx(__i64 __A,__i64 __B)693 __vis_xmulx (__i64 __A, __i64 __B)
694 {
695   return __builtin_vis_xmulx (__A, __B);
696 }
697 
698 extern __inline __i64
699 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__vis_xmulxhi(__i64 __A,__i64 __B)700 __vis_xmulxhi (__i64 __A, __i64 __B)
701 {
702   return __builtin_vis_xmulxhi (__A, __B);
703 }
704 
705 #endif /* __VIS__ >= 0x300 */
706 
707 #endif /* __VIS__ */
708 
709 #endif  /* _VISINTRIN_H_INCLUDED */
710