]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/sparc/visintrin.h
except.c (expr_noexcept_p): Split out from finish_noexcept_expr.
[thirdparty/gcc.git] / gcc / config / sparc / visintrin.h
CommitLineData
e7f799ce
DM
1/* Copyright (C) 2011 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
27typedef int __v2si __attribute__ ((__vector_size__ (8)));
28typedef short __v4hi __attribute__ ((__vector_size__ (8)));
29typedef short __v2hi __attribute__ ((__vector_size__ (4)));
b1e4f4dd
DM
30typedef unsigned char __v8qi __attribute__ ((__vector_size__ (8)));
31typedef unsigned char __v4qi __attribute__ ((__vector_size__ (4)));
e7f799ce
DM
32typedef int __i64 __attribute__ ((__mode__ (DI)));
33
34extern __inline void *
35__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
36__vis_alignaddr (void *__A, long __B)
37{
38 return __builtin_vis_alignaddr (__A, __B);
39}
40
47640f40
DM
41extern __inline void *
42__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
43__vis_alignaddrl (void *__A, long __B)
44{
45 return __builtin_vis_alignaddrl (__A, __B);
46}
47
e7f799ce
DM
48extern __inline __i64
49__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
b1e4f4dd 50__vis_faligndatadi (__i64 __A, __i64 __B)
e7f799ce 51{
b1e4f4dd 52 return __builtin_vis_faligndatadi (__A, __B);
e7f799ce
DM
53}
54
55extern __inline __v2si
56__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
b1e4f4dd 57__vis_faligndatav2si (__v2si __A, __v2si __B)
e7f799ce 58{
b1e4f4dd 59 return __builtin_vis_faligndatav2si (__A, __B);
e7f799ce
DM
60}
61
62extern __inline __v4hi
63__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
b1e4f4dd 64__vis_faligndatav4hi (__v4hi __A, __v4hi __B)
e7f799ce 65{
b1e4f4dd 66 return __builtin_vis_faligndatav4hi (__A, __B);
e7f799ce
DM
67}
68
69extern __inline __v8qi
70__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
b1e4f4dd 71__vis_faligndatav8qi (__v8qi __A, __v8qi __B)
e7f799ce 72{
b1e4f4dd 73 return __builtin_vis_faligndatav8qi (__A, __B);
e7f799ce
DM
74}
75
76extern __inline __v4hi
77__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
78__vis_fexpand (__v4qi __A)
79{
80 return __builtin_vis_fexpand (__A);
81}
82
83extern __inline __v4hi
84__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
85__vis_fmul8x16 (__v4qi __A, __v4hi __B)
86{
87 return __builtin_vis_fmul8x16 (__A, __B);
88}
89
90extern __inline __v4hi
91__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
b1e4f4dd 92__vis_fmul8x16au (__v4qi __A, __v2hi __B)
e7f799ce
DM
93{
94 return __builtin_vis_fmul8x16au (__A, __B);
95}
96
97extern __inline __v4hi
98__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
b1e4f4dd 99__vis_fmul8x16al (__v4qi __A, __v2hi __B)
e7f799ce
DM
100{
101 return __builtin_vis_fmul8x16al (__A, __B);
102}
103
104extern __inline __v4hi
105__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
106__vis_fmul8sux16 (__v8qi __A, __v4hi __B)
107{
108 return __builtin_vis_fmul8sux16 (__A, __B);
109}
110
111extern __inline __v4hi
112__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
113__vis_fmul8ulx16 (__v8qi __A, __v4hi __B)
114{
115 return __builtin_vis_fmul8ulx16 (__A, __B);
116}
117
118extern __inline __v2si
119__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
120__vis_fmuld8sux16 (__v4qi __A, __v2hi __B)
121{
122 return __builtin_vis_fmuld8sux16 (__A, __B);
123}
124
125extern __inline __v2si
126__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
127__vis_fmuld8ulx16 (__v4qi __A, __v2hi __B)
128{
129 return __builtin_vis_fmuld8ulx16 (__A, __B);
130}
131
132extern __inline __v4qi
133__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
134__vis_fpack16 (__v4hi __A)
135{
136 return __builtin_vis_fpack16 (__A);
137}
138
139extern __inline __v8qi
140__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
b1e4f4dd 141__vis_fpack32 (__v2si __A, __v8qi __B)
e7f799ce
DM
142{
143 return __builtin_vis_fpack32 (__A, __B);
144}
145
146extern __inline __v2hi
147__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
148__vis_fpackfix (__v2si __A)
149{
150 return __builtin_vis_fpackfix (__A);
151}
152
153extern __inline __v8qi
154__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
155__vis_fpmerge (__v4qi __A, __v4qi __B)
156{
157 return __builtin_vis_fpmerge (__A, __B);
158}
159
160extern __inline __i64
161__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
162__vis_pdist (__v8qi __A, __v8qi __B, __i64 __C)
163{
164 return __builtin_vis_pdist (__A, __B, __C);
165}
166
47640f40 167extern __inline int
b1e4f4dd 168__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
47640f40 169__vis_edge8 (void *__A, void *__B)
b1e4f4dd
DM
170{
171 return __builtin_vis_edge8 (__A, __B);
172}
173
47640f40 174extern __inline int
b1e4f4dd 175__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
47640f40 176__vis_edge8l (void *__A, void *__B)
b1e4f4dd
DM
177{
178 return __builtin_vis_edge8l (__A, __B);
179}
180
47640f40 181extern __inline int
b1e4f4dd 182__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
47640f40 183__vis_edge16 (void *__A, void *__B)
b1e4f4dd
DM
184{
185 return __builtin_vis_edge16 (__A, __B);
186}
187
47640f40 188extern __inline int
b1e4f4dd 189__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
47640f40 190__vis_edge16l (void *__A, void *__B)
b1e4f4dd
DM
191{
192 return __builtin_vis_edge16l (__A, __B);
193}
194
47640f40 195extern __inline int
b1e4f4dd 196__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
47640f40 197__vis_edge32 (void *__A, void *__B)
b1e4f4dd
DM
198{
199 return __builtin_vis_edge32 (__A, __B);
200}
201
47640f40 202extern __inline int
b1e4f4dd 203__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
47640f40 204__vis_edge32l (void *__A, void *__B)
b1e4f4dd
DM
205{
206 return __builtin_vis_edge32l (__A, __B);
207}
208
f4d7f828
DM
209extern __inline int
210__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
211__vis_fcmple16 (__v4hi __A, __v4hi __B)
212{
213 return __builtin_vis_fcmple16 (__A, __B);
214}
215
216extern __inline int
217__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
218__vis_fcmple32 (__v2si __A, __v2si __B)
219{
220 return __builtin_vis_fcmple32 (__A, __B);
221}
222
223extern __inline int
224__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
225__vis_fcmpne16 (__v4hi __A, __v4hi __B)
226{
227 return __builtin_vis_fcmpne16 (__A, __B);
228}
229
230extern __inline int
231__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
232__vis_fcmpne32 (__v2si __A, __v2si __B)
233{
234 return __builtin_vis_fcmpne32 (__A, __B);
235}
236
237extern __inline int
238__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
239__vis_fcmpgt16 (__v4hi __A, __v4hi __B)
240{
241 return __builtin_vis_fcmpgt16 (__A, __B);
242}
243
244extern __inline int
245__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
246__vis_fcmpgt32 (__v2si __A, __v2si __B)
247{
248 return __builtin_vis_fcmpgt32 (__A, __B);
249}
250
251extern __inline int
252__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
253__vis_fcmpeq16 (__v4hi __A, __v4hi __B)
254{
255 return __builtin_vis_fcmpeq16 (__A, __B);
256}
257
258extern __inline int
259__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
260__vis_fcmpeq32 (__v2si __A, __v2si __B)
261{
262 return __builtin_vis_fcmpeq32 (__A, __B);
263}
264
e7f799ce 265#endif /* _VISINTRIN_H_INCLUDED */