]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/sparc/visintrin.h
Daily bump.
[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)));
f14e0262 28typedef int __v1si __attribute__ ((__vector_size__ (4)));
e7f799ce
DM
29typedef short __v4hi __attribute__ ((__vector_size__ (8)));
30typedef short __v2hi __attribute__ ((__vector_size__ (4)));
b1e4f4dd
DM
31typedef unsigned char __v8qi __attribute__ ((__vector_size__ (8)));
32typedef unsigned char __v4qi __attribute__ ((__vector_size__ (4)));
e7f799ce
DM
33typedef int __i64 __attribute__ ((__mode__ (DI)));
34
10b859c0
DM
35extern __inline void
36__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
37__vis_write_gsr (__i64 __A)
38{
39 __builtin_vis_write_gsr (__A);
40}
41
42extern __inline __i64
43__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
44__vis_read_gsr (void)
45{
46 return __builtin_vis_read_gsr ();
47}
48
e7f799ce
DM
49extern __inline void *
50__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
51__vis_alignaddr (void *__A, long __B)
52{
53 return __builtin_vis_alignaddr (__A, __B);
54}
55
47640f40
DM
56extern __inline void *
57__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
58__vis_alignaddrl (void *__A, long __B)
59{
60 return __builtin_vis_alignaddrl (__A, __B);
61}
62
e7f799ce
DM
63extern __inline __i64
64__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
b1e4f4dd 65__vis_faligndatadi (__i64 __A, __i64 __B)
e7f799ce 66{
b1e4f4dd 67 return __builtin_vis_faligndatadi (__A, __B);
e7f799ce
DM
68}
69
70extern __inline __v2si
71__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
b1e4f4dd 72__vis_faligndatav2si (__v2si __A, __v2si __B)
e7f799ce 73{
b1e4f4dd 74 return __builtin_vis_faligndatav2si (__A, __B);
e7f799ce
DM
75}
76
77extern __inline __v4hi
78__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
b1e4f4dd 79__vis_faligndatav4hi (__v4hi __A, __v4hi __B)
e7f799ce 80{
b1e4f4dd 81 return __builtin_vis_faligndatav4hi (__A, __B);
e7f799ce
DM
82}
83
84extern __inline __v8qi
85__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
b1e4f4dd 86__vis_faligndatav8qi (__v8qi __A, __v8qi __B)
e7f799ce 87{
b1e4f4dd 88 return __builtin_vis_faligndatav8qi (__A, __B);
e7f799ce
DM
89}
90
91extern __inline __v4hi
92__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
93__vis_fexpand (__v4qi __A)
94{
95 return __builtin_vis_fexpand (__A);
96}
97
98extern __inline __v4hi
99__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
100__vis_fmul8x16 (__v4qi __A, __v4hi __B)
101{
102 return __builtin_vis_fmul8x16 (__A, __B);
103}
104
105extern __inline __v4hi
106__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
b1e4f4dd 107__vis_fmul8x16au (__v4qi __A, __v2hi __B)
e7f799ce
DM
108{
109 return __builtin_vis_fmul8x16au (__A, __B);
110}
111
112extern __inline __v4hi
113__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
b1e4f4dd 114__vis_fmul8x16al (__v4qi __A, __v2hi __B)
e7f799ce
DM
115{
116 return __builtin_vis_fmul8x16al (__A, __B);
117}
118
119extern __inline __v4hi
120__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
121__vis_fmul8sux16 (__v8qi __A, __v4hi __B)
122{
123 return __builtin_vis_fmul8sux16 (__A, __B);
124}
125
126extern __inline __v4hi
127__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
128__vis_fmul8ulx16 (__v8qi __A, __v4hi __B)
129{
130 return __builtin_vis_fmul8ulx16 (__A, __B);
131}
132
133extern __inline __v2si
134__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
135__vis_fmuld8sux16 (__v4qi __A, __v2hi __B)
136{
137 return __builtin_vis_fmuld8sux16 (__A, __B);
138}
139
140extern __inline __v2si
141__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
142__vis_fmuld8ulx16 (__v4qi __A, __v2hi __B)
143{
144 return __builtin_vis_fmuld8ulx16 (__A, __B);
145}
146
147extern __inline __v4qi
148__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
149__vis_fpack16 (__v4hi __A)
150{
151 return __builtin_vis_fpack16 (__A);
152}
153
154extern __inline __v8qi
155__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
b1e4f4dd 156__vis_fpack32 (__v2si __A, __v8qi __B)
e7f799ce
DM
157{
158 return __builtin_vis_fpack32 (__A, __B);
159}
160
161extern __inline __v2hi
162__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
163__vis_fpackfix (__v2si __A)
164{
165 return __builtin_vis_fpackfix (__A);
166}
167
168extern __inline __v8qi
169__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
170__vis_fpmerge (__v4qi __A, __v4qi __B)
171{
172 return __builtin_vis_fpmerge (__A, __B);
173}
174
175extern __inline __i64
176__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
177__vis_pdist (__v8qi __A, __v8qi __B, __i64 __C)
178{
179 return __builtin_vis_pdist (__A, __B, __C);
180}
181
cb8bbba8 182extern __inline long
b1e4f4dd 183__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
47640f40 184__vis_edge8 (void *__A, void *__B)
b1e4f4dd
DM
185{
186 return __builtin_vis_edge8 (__A, __B);
187}
188
cb8bbba8 189extern __inline long
b1e4f4dd 190__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
47640f40 191__vis_edge8l (void *__A, void *__B)
b1e4f4dd
DM
192{
193 return __builtin_vis_edge8l (__A, __B);
194}
195
cb8bbba8 196extern __inline long
b1e4f4dd 197__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
47640f40 198__vis_edge16 (void *__A, void *__B)
b1e4f4dd
DM
199{
200 return __builtin_vis_edge16 (__A, __B);
201}
202
cb8bbba8 203extern __inline long
b1e4f4dd 204__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
47640f40 205__vis_edge16l (void *__A, void *__B)
b1e4f4dd
DM
206{
207 return __builtin_vis_edge16l (__A, __B);
208}
209
cb8bbba8 210extern __inline long
b1e4f4dd 211__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
47640f40 212__vis_edge32 (void *__A, void *__B)
b1e4f4dd
DM
213{
214 return __builtin_vis_edge32 (__A, __B);
215}
216
cb8bbba8 217extern __inline long
b1e4f4dd 218__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
47640f40 219__vis_edge32l (void *__A, void *__B)
b1e4f4dd
DM
220{
221 return __builtin_vis_edge32l (__A, __B);
222}
223
cb8bbba8 224extern __inline long
f4d7f828
DM
225__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
226__vis_fcmple16 (__v4hi __A, __v4hi __B)
227{
228 return __builtin_vis_fcmple16 (__A, __B);
229}
230
cb8bbba8 231extern __inline long
f4d7f828
DM
232__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
233__vis_fcmple32 (__v2si __A, __v2si __B)
234{
235 return __builtin_vis_fcmple32 (__A, __B);
236}
237
cb8bbba8 238extern __inline long
f4d7f828
DM
239__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
240__vis_fcmpne16 (__v4hi __A, __v4hi __B)
241{
242 return __builtin_vis_fcmpne16 (__A, __B);
243}
244
cb8bbba8 245extern __inline long
f4d7f828
DM
246__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
247__vis_fcmpne32 (__v2si __A, __v2si __B)
248{
249 return __builtin_vis_fcmpne32 (__A, __B);
250}
251
cb8bbba8 252extern __inline long
f4d7f828
DM
253__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
254__vis_fcmpgt16 (__v4hi __A, __v4hi __B)
255{
256 return __builtin_vis_fcmpgt16 (__A, __B);
257}
258
cb8bbba8 259extern __inline long
f4d7f828
DM
260__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
261__vis_fcmpgt32 (__v2si __A, __v2si __B)
262{
263 return __builtin_vis_fcmpgt32 (__A, __B);
264}
265
cb8bbba8 266extern __inline long
f4d7f828
DM
267__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
268__vis_fcmpeq16 (__v4hi __A, __v4hi __B)
269{
270 return __builtin_vis_fcmpeq16 (__A, __B);
271}
272
cb8bbba8 273extern __inline long
f4d7f828
DM
274__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
275__vis_fcmpeq32 (__v2si __A, __v2si __B)
276{
277 return __builtin_vis_fcmpeq32 (__A, __B);
278}
279
f14e0262
DM
280extern __inline __v4hi
281__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
282__vis_fpadd16 (__v4hi __A, __v4hi __B)
283{
284 return __builtin_vis_fpadd16 (__A, __B);
285}
286
287extern __inline __v2hi
288__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
289__vis_fpadd16s (__v2hi __A, __v2hi __B)
290{
291 return __builtin_vis_fpadd16s (__A, __B);
292}
293
294extern __inline __v2si
295__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
296__vis_fpadd32 (__v2si __A, __v2si __B)
297{
298 return __builtin_vis_fpadd32 (__A, __B);
299}
300
301extern __inline __v1si
302__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
303__vis_fpadd32s (__v1si __A, __v1si __B)
304{
305 return __builtin_vis_fpadd32s (__A, __B);
306}
307
308extern __inline __v4hi
309__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
310__vis_fpsub16 (__v4hi __A, __v4hi __B)
311{
312 return __builtin_vis_fpsub16 (__A, __B);
313}
314
315extern __inline __v2hi
316__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
317__vis_fpsub16s (__v2hi __A, __v2hi __B)
318{
319 return __builtin_vis_fpsub16s (__A, __B);
320}
321
322extern __inline __v2si
323__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
324__vis_fpsub32 (__v2si __A, __v2si __B)
325{
326 return __builtin_vis_fpsub32 (__A, __B);
327}
328
329extern __inline __v1si
330__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
331__vis_fpsub32s (__v1si __A, __v1si __B)
332{
333 return __builtin_vis_fpsub32s (__A, __B);
334}
335
1ec01ab2
DM
336extern __inline long
337__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
338__vis_array8 (long __A, long __B)
339{
340 return __builtin_vis_array8 (__A, __B);
341}
342
343extern __inline long
344__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
345__vis_array16 (long __A, long __B)
346{
347 return __builtin_vis_array16 (__A, __B);
348}
349
350extern __inline long
351__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
352__vis_array32 (long __A, long __B)
353{
354 return __builtin_vis_array32 (__A, __B);
355}
356
e7f799ce 357#endif /* _VISINTRIN_H_INCLUDED */