Merge aosp-toolchain/gcc/gcc-4_9 changes.
[official-gcc.git] / gcc-4_9 / gcc / config / mips / mips-ftypes.def
blobfde206d1ceab1b8f2ff7fe08a85e3d7bb18f6f77
1 /* Definitions of prototypes for MIPS built-in functions. -*- C -*-
2 Copyright (C) 2007-2014 Free Software Foundation, Inc.
4 This file is part of GCC.
6 GCC is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3, or (at your option)
9 any later version.
11 GCC is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GCC; see the file COPYING3. If not see
18 <http://www.gnu.org/licenses/>. */
20 /* Invoke DEF_MIPS_FTYPE (NARGS, LIST) for each prototype used by
21 MIPS built-in functions, where:
23 NARGS is the number of arguments.
24 LIST contains the return-type code followed by the codes for each
25 argument type.
27 Argument- and return-type codes are either modes or one of the following:
29 VOID for void_type_node
30 INT for integer_type_node
31 POINTER for ptr_type_node
33 (we don't use PTR because that's a ANSI-compatibillity macro).
35 Please keep this list lexicographically sorted by the LIST argument. */
36 DEF_MIPS_FTYPE (1, (DF, DF))
37 DEF_MIPS_FTYPE (2, (DF, DF, DF))
39 DEF_MIPS_FTYPE (2, (V16QI, V16QI, V16QI))
40 DEF_MIPS_FTYPE (2, (V8HI, V8HI, V8HI))
41 DEF_MIPS_FTYPE (2, (V4SI, V4SI, V4SI))
42 DEF_MIPS_FTYPE (2, (V2DI, V2DI, V2DI))
44 DEF_MIPS_FTYPE (2, (UV16QI, UV16QI, UV16QI))
45 DEF_MIPS_FTYPE (2, (UV8HI, UV8HI, UV8HI))
46 DEF_MIPS_FTYPE (2, (UV4SI, UV4SI, UV4SI))
47 DEF_MIPS_FTYPE (2, (UV2DI, UV2DI, UV2DI))
49 DEF_MIPS_FTYPE (2, (V16QI, V16QI, UQI))
50 DEF_MIPS_FTYPE (2, (V8HI, V8HI, UQI))
51 DEF_MIPS_FTYPE (2, (V4SI, V4SI, UQI))
52 DEF_MIPS_FTYPE (2, (V2DI, V2DI, UQI))
54 DEF_MIPS_FTYPE (2, (V16QI, V16QI, QI))
55 DEF_MIPS_FTYPE (2, (V8HI, V8HI, QI))
56 DEF_MIPS_FTYPE (2, (V4SI, V4SI, QI))
57 DEF_MIPS_FTYPE (2, (V2DI, V2DI, QI))
59 DEF_MIPS_FTYPE (2, (UV16QI, UV16QI, UQI))
60 DEF_MIPS_FTYPE (2, (UV8HI, UV8HI, UQI))
61 DEF_MIPS_FTYPE (2, (UV4SI, UV4SI, UQI))
62 DEF_MIPS_FTYPE (2, (UV2DI, UV2DI, UQI))
64 DEF_MIPS_FTYPE (3, (V16QI, V16QI, V16QI, V16QI))
65 DEF_MIPS_FTYPE (3, (V8HI, V8HI, V8HI, V8HI))
66 DEF_MIPS_FTYPE (3, (V4SI, V4SI, V4SI, V4SI))
67 DEF_MIPS_FTYPE (3, (V2DI, V2DI, V2DI, V2DI))
68 DEF_MIPS_FTYPE (3, (V4SF, V4SI, V4SF, V4SF))
69 DEF_MIPS_FTYPE (3, (V2DF, V2DI, V2DF, V2DF))
71 DEF_MIPS_FTYPE (3, (V16QI, V16QI, V16QI, UQI))
72 DEF_MIPS_FTYPE (3, (V8HI, V8HI, V8HI, UQI))
73 DEF_MIPS_FTYPE (3, (V4SI, V4SI, V4SI, UQI))
74 DEF_MIPS_FTYPE (3, (V2DI, V2DI, V2DI, UQI))
76 DEF_MIPS_FTYPE (2, (SI, V16QI, UQI))
77 DEF_MIPS_FTYPE (2, (SI, V8HI, UQI))
78 DEF_MIPS_FTYPE (2, (SI, V4SI, UQI))
79 DEF_MIPS_FTYPE (2, (SF, V4SF, UQI))
81 DEF_MIPS_FTYPE (2, (DI, V2DI, UQI))
82 DEF_MIPS_FTYPE (2, (DF, V2DF, UQI))
84 DEF_MIPS_FTYPE (3, (V16QI, V16QI, SI, UQI))
85 DEF_MIPS_FTYPE (3, (V8HI, V8HI, SI, UQI))
86 DEF_MIPS_FTYPE (3, (V4SI, V4SI, SI, UQI))
87 DEF_MIPS_FTYPE (3, (V2DI, V2DI, DI, UQI))
88 DEF_MIPS_FTYPE (3, (V4SF, V4SF, SF, UQI))
89 DEF_MIPS_FTYPE (3, (V2DF, V2DF, DF, UQI))
91 DEF_MIPS_FTYPE (2, (V8HI, V16QI, V16QI))
92 DEF_MIPS_FTYPE (2, (V4SI, V8HI, V8HI))
93 DEF_MIPS_FTYPE (2, (V2DI, V4SI, V4SI))
94 DEF_MIPS_FTYPE (2, (UV8HI, UV16QI, UV16QI))
95 DEF_MIPS_FTYPE (2, (UV4SI, UV8HI, UV8HI))
96 DEF_MIPS_FTYPE (2, (UV2DI, UV4SI, UV4SI))
98 DEF_MIPS_FTYPE (3, (V8HI, V8HI, V16QI, V16QI))
99 DEF_MIPS_FTYPE (3, (V4SI, V4SI, V8HI, V8HI))
100 DEF_MIPS_FTYPE (3, (V2DI, V2DI, V4SI, V4SI))
101 DEF_MIPS_FTYPE (3, (UV8HI, UV8HI, UV16QI, UV16QI))
102 DEF_MIPS_FTYPE (3, (UV4SI, UV4SI, UV8HI, UV8HI))
103 DEF_MIPS_FTYPE (3, (UV2DI, UV2DI, UV4SI, UV4SI))
105 DEF_MIPS_FTYPE (2, (V4SF, V4SF, V4SF))
106 DEF_MIPS_FTYPE (2, (V2DF, V2DF, V2DF))
108 DEF_MIPS_FTYPE (2, (V4SI, V4SF, V4SF))
109 DEF_MIPS_FTYPE (2, (V2DI, V2DF, V2DF))
111 DEF_MIPS_FTYPE (1, (V4SI, V4SF))
112 DEF_MIPS_FTYPE (1, (V2DI, V2DF))
114 DEF_MIPS_FTYPE (2, (V4SF, V4SF, V4SI))
115 DEF_MIPS_FTYPE (2, (V2DF, V2DF, V2DI))
117 DEF_MIPS_FTYPE (1, (V4SF, V4SI))
118 DEF_MIPS_FTYPE (1, (V2DF, V2DI))
120 DEF_MIPS_FTYPE (1, (V4SF, UV4SI))
121 DEF_MIPS_FTYPE (1, (V2DF, UV2DI))
123 DEF_MIPS_FTYPE (1, (V4SF, V8HI))
124 DEF_MIPS_FTYPE (1, (V2DF, V4SI))
126 DEF_MIPS_FTYPE (3, (V4SF, V4SF, V4SF, V4SF))
127 DEF_MIPS_FTYPE (3, (V2DF, V2DF, V2DF, V2DF))
129 DEF_MIPS_FTYPE (1, (UV4SI, V4SF))
130 DEF_MIPS_FTYPE (1, (UV2DI, V2DF))
132 DEF_MIPS_FTYPE (2, (V8HI, V4SF, V4SF))
133 DEF_MIPS_FTYPE (2, (V4SI, V2DF, V2DF))
135 DEF_MIPS_FTYPE (1, (V16QI, V16QI))
136 DEF_MIPS_FTYPE (1, (V8HI, V8HI))
137 DEF_MIPS_FTYPE (1, (V4SI, V4SI))
138 DEF_MIPS_FTYPE (1, (V2DI, V2DI))
139 DEF_MIPS_FTYPE (1, (V4SF, V4SF))
140 DEF_MIPS_FTYPE (1, (V2DF, V2DF))
142 DEF_MIPS_FTYPE (2, (UV16QI, V16QI, V16QI))
143 DEF_MIPS_FTYPE (2, (UV8HI, V8HI, V8HI))
144 DEF_MIPS_FTYPE (2, (UV4SI, V4SI, V4SI))
145 DEF_MIPS_FTYPE (2, (UV2DI, V2DI, V2DI))
147 DEF_MIPS_FTYPE (2, (V16QI, UV16QI, UV16QI))
148 DEF_MIPS_FTYPE (2, (V8HI, UV8HI, UV8HI))
149 DEF_MIPS_FTYPE (2, (V4SI, UV4SI, UV4SI))
150 DEF_MIPS_FTYPE (2, (V2DI, UV2DI, UV2DI))
152 DEF_MIPS_FTYPE (3, (V16QI, V16QI, V16QI, SI))
153 DEF_MIPS_FTYPE (3, (V8HI, V8HI, V8HI, SI))
154 DEF_MIPS_FTYPE (3, (V4SI, V4SI, V4SI, SI))
155 DEF_MIPS_FTYPE (3, (V2DI, V2DI, V2DI, SI))
156 DEF_MIPS_FTYPE (3, (V4SF, V4SF, V4SF, SI))
157 DEF_MIPS_FTYPE (3, (V2DF, V2DF, V2DF, SI))
159 DEF_MIPS_FTYPE (3, (V4SF, V4SF, V4SF, UQI))
160 DEF_MIPS_FTYPE (3, (V2DF, V2DF, V2DF, UQI))
162 DEF_MIPS_FTYPE (2, (V16QI, V16QI, SI))
163 DEF_MIPS_FTYPE (2, (V8HI, V8HI, SI))
164 DEF_MIPS_FTYPE (2, (V4SI, V4SI, SI))
165 DEF_MIPS_FTYPE (2, (V2DI, V2DI, SI))
166 DEF_MIPS_FTYPE (2, (V4SF, V4SF, SI))
167 DEF_MIPS_FTYPE (2, (V2DF, V2DF, SI))
169 DEF_MIPS_FTYPE (2, (V4SF, V4SF, UQI))
170 DEF_MIPS_FTYPE (2, (V2DF, V2DF, UQI))
172 DEF_MIPS_FTYPE (1, (V16QI, SI))
173 DEF_MIPS_FTYPE (1, (V8HI, SI))
174 DEF_MIPS_FTYPE (1, (V4SI, SI))
175 DEF_MIPS_FTYPE (1, (V2DI, DI))
176 DEF_MIPS_FTYPE (1, (V4SF, SF))
177 DEF_MIPS_FTYPE (1, (V2DF, DF))
179 DEF_MIPS_FTYPE (1, (V16QI, HI))
180 DEF_MIPS_FTYPE (1, (V8HI, HI))
181 DEF_MIPS_FTYPE (1, (V4SI, HI))
182 DEF_MIPS_FTYPE (1, (V2DI, HI))
183 DEF_MIPS_FTYPE (1, (V4SF, HI))
184 DEF_MIPS_FTYPE (1, (V2DF, HI))
186 DEF_MIPS_FTYPE (1, (SI, UQI))
187 DEF_MIPS_FTYPE (2, (VOID, UQI, SI))
189 /* V8HF is not supported yet. */
190 /* DEF_MIPS_FTYPE (1, (V4SF, V8HF)) */
191 /* DEF_MIPS_FTYPE (2, (V8HF, V4SF, V4SF)) */
193 DEF_MIPS_FTYPE (1, (V2DF, V4SF))
194 DEF_MIPS_FTYPE (2, (V4SF, V2DF, V2DF))
196 DEF_MIPS_FTYPE (2, (V16QI, POINTER, SI))
197 DEF_MIPS_FTYPE (2, (V8HI, POINTER, SI))
198 DEF_MIPS_FTYPE (2, (V4SI, POINTER, SI))
199 DEF_MIPS_FTYPE (2, (V2DI, POINTER, SI))
200 DEF_MIPS_FTYPE (2, (V4SF, POINTER, SI))
201 DEF_MIPS_FTYPE (2, (V2DF, POINTER, SI))
203 DEF_MIPS_FTYPE (3, (VOID, V16QI, POINTER, SI))
204 DEF_MIPS_FTYPE (3, (VOID, V8HI, POINTER, SI))
205 DEF_MIPS_FTYPE (3, (VOID, V4SI, POINTER, SI))
206 DEF_MIPS_FTYPE (3, (VOID, V2DI, POINTER, SI))
207 DEF_MIPS_FTYPE (3, (VOID, V4SF, POINTER, SI))
208 DEF_MIPS_FTYPE (3, (VOID, V2DF, POINTER, SI))
210 DEF_MIPS_FTYPE (1, (SI, V16QI))
211 DEF_MIPS_FTYPE (1, (SI, V8HI))
212 DEF_MIPS_FTYPE (1, (SI, V4SI))
213 DEF_MIPS_FTYPE (1, (SI, V2DI))
214 DEF_MIPS_FTYPE (1, (SI, V4SF))
215 DEF_MIPS_FTYPE (1, (SI, V2DF))
217 DEF_MIPS_FTYPE (1, (SF, V4SF))
218 DEF_MIPS_FTYPE (1, (DF, V2DF))
220 DEF_MIPS_FTYPE (2, (UV16QI, UV16QI, V16QI))
221 DEF_MIPS_FTYPE (2, (UV8HI, UV8HI, V8HI))
222 DEF_MIPS_FTYPE (2, (UV4SI, UV4SI, V4SI))
223 DEF_MIPS_FTYPE (2, (UV2DI, UV2DI, V2DI))
225 DEF_MIPS_FTYPE (2, (V8HI, UV16QI, UV16QI))
226 DEF_MIPS_FTYPE (2, (V4SI, UV8HI, UV8HI))
227 DEF_MIPS_FTYPE (2, (V2DI, UV4SI, UV4SI))
229 DEF_MIPS_FTYPE (3, (V8HI, V8HI, UV16QI, UV16QI))
230 DEF_MIPS_FTYPE (3, (V4SI, V4SI, UV8HI, UV8HI))
231 DEF_MIPS_FTYPE (3, (V2DI, V2DI, UV4SI, UV4SI))
233 DEF_MIPS_FTYPE (3, (UV16QI, UV16QI, UV16QI, UV16QI))
234 DEF_MIPS_FTYPE (3, (UV8HI, UV8HI, UV8HI, UV8HI))
235 DEF_MIPS_FTYPE (3, (UV4SI, UV4SI, UV4SI, UV4SI))
236 DEF_MIPS_FTYPE (3, (UV2DI, UV2DI, UV2DI, UV2DI))
238 DEF_MIPS_FTYPE (3, (UV16QI, UV16QI, UV16QI, UQI))
239 DEF_MIPS_FTYPE (3, (UV8HI, UV8HI, UV8HI, UQI))
240 DEF_MIPS_FTYPE (3, (UV4SI, UV4SI, UV4SI, UQI))
241 DEF_MIPS_FTYPE (3, (UV2DI, UV2DI, UV2DI, UQI))
243 DEF_MIPS_FTYPE (1, (SI, UV16QI))
244 DEF_MIPS_FTYPE (1, (SI, UV8HI))
245 DEF_MIPS_FTYPE (1, (SI, UV4SI))
246 DEF_MIPS_FTYPE (1, (SI, UV2DI))
248 DEF_MIPS_FTYPE (2, (V16QI, UV16QI, UQI))
249 DEF_MIPS_FTYPE (2, (V8HI, UV8HI, UQI))
250 DEF_MIPS_FTYPE (2, (V4SI, UV4SI, UQI))
251 DEF_MIPS_FTYPE (2, (V2DI, UV2DI, UQI))
253 DEF_MIPS_FTYPE (3, (V16QI, V16QI, UQI, SI))
254 DEF_MIPS_FTYPE (3, (V8HI, V8HI, UQI, SI))
255 DEF_MIPS_FTYPE (3, (V4SI, V4SI, UQI, SI))
256 DEF_MIPS_FTYPE (3, (V2DI, V2DI, UQI, DI))
258 DEF_MIPS_FTYPE (3, (V16QI, V16QI, UQI, V16QI))
259 DEF_MIPS_FTYPE (3, (V8HI, V8HI, UQI, V8HI))
260 DEF_MIPS_FTYPE (3, (V4SI, V4SI, UQI, V4SI))
261 DEF_MIPS_FTYPE (3, (V2DI, V2DI, UQI, V2DI))
263 DEF_MIPS_FTYPE (2, (DI, DI, DI))
264 DEF_MIPS_FTYPE (2, (DI, DI, SI))
265 DEF_MIPS_FTYPE (3, (DI, DI, SI, SI))
266 DEF_MIPS_FTYPE (3, (DI, DI, USI, USI))
267 DEF_MIPS_FTYPE (3, (DI, DI, V2HI, V2HI))
268 DEF_MIPS_FTYPE (3, (DI, DI, V4QI, V4QI))
269 DEF_MIPS_FTYPE (2, (DI, SI, SI))
270 DEF_MIPS_FTYPE (2, (DI, USI, USI))
272 DEF_MIPS_FTYPE (2, (INT, DF, DF))
273 DEF_MIPS_FTYPE (2, (INT, SF, SF))
274 DEF_MIPS_FTYPE (2, (INT, V2SF, V2SF))
275 DEF_MIPS_FTYPE (4, (INT, V2SF, V2SF, V2SF, V2SF))
277 DEF_MIPS_FTYPE (2, (SI, DI, SI))
278 DEF_MIPS_FTYPE (2, (SI, POINTER, SI))
279 DEF_MIPS_FTYPE (2, (DI, POINTER, SI))
280 DEF_MIPS_FTYPE (1, (SI, SI))
281 DEF_MIPS_FTYPE (2, (SI, SI, SI))
282 DEF_MIPS_FTYPE (3, (SI, SI, SI, SI))
283 DEF_MIPS_FTYPE (1, (SI, V2HI))
284 DEF_MIPS_FTYPE (2, (SI, V2HI, V2HI))
285 DEF_MIPS_FTYPE (1, (SI, V4QI))
286 DEF_MIPS_FTYPE (2, (SI, V4QI, V4QI))
287 DEF_MIPS_FTYPE (1, (SI, VOID))
289 DEF_MIPS_FTYPE (1, (SF, SF))
290 DEF_MIPS_FTYPE (2, (SF, SF, SF))
291 DEF_MIPS_FTYPE (1, (SF, V2SF))
293 DEF_MIPS_FTYPE (2, (UDI, UDI, UDI))
294 DEF_MIPS_FTYPE (2, (UDI, UV2SI, UV2SI))
296 DEF_MIPS_FTYPE (1, (USI, VOID))
298 DEF_MIPS_FTYPE (2, (UV2SI, UV2SI, UQI))
299 DEF_MIPS_FTYPE (2, (UV2SI, UV2SI, UV2SI))
301 DEF_MIPS_FTYPE (2, (UV4HI, UV4HI, UQI))
302 DEF_MIPS_FTYPE (2, (UV4HI, UV4HI, USI))
303 DEF_MIPS_FTYPE (3, (UV4HI, UV4HI, UV4HI, UQI))
304 DEF_MIPS_FTYPE (3, (UV4HI, UV4HI, UV4HI, USI))
305 DEF_MIPS_FTYPE (2, (UV4HI, UV4HI, UV4HI))
306 DEF_MIPS_FTYPE (1, (UV4HI, UV8QI))
307 DEF_MIPS_FTYPE (2, (UV4HI, UV8QI, UV8QI))
309 DEF_MIPS_FTYPE (2, (UV8QI, UV4HI, UV4HI))
310 DEF_MIPS_FTYPE (1, (UV8QI, UV8QI))
311 DEF_MIPS_FTYPE (2, (UV8QI, UV8QI, UV8QI))
313 DEF_MIPS_FTYPE (1, (V2HI, SI))
314 DEF_MIPS_FTYPE (2, (V2HI, SI, SI))
315 DEF_MIPS_FTYPE (3, (V2HI, SI, SI, SI))
316 DEF_MIPS_FTYPE (1, (V2HI, V2HI))
317 DEF_MIPS_FTYPE (2, (V2HI, V2HI, SI))
318 DEF_MIPS_FTYPE (2, (V2HI, V2HI, V2HI))
319 DEF_MIPS_FTYPE (1, (V2HI, V4QI))
320 DEF_MIPS_FTYPE (2, (V2HI, V4QI, V2HI))
322 DEF_MIPS_FTYPE (2, (V2SF, SF, SF))
323 DEF_MIPS_FTYPE (1, (V2SF, V2SF))
324 DEF_MIPS_FTYPE (2, (V2SF, V2SF, V2SF))
325 DEF_MIPS_FTYPE (3, (V2SF, V2SF, V2SF, INT))
326 DEF_MIPS_FTYPE (4, (V2SF, V2SF, V2SF, V2SF, V2SF))
328 DEF_MIPS_FTYPE (2, (V2SI, V2SI, UQI))
329 DEF_MIPS_FTYPE (2, (V2SI, V2SI, V2SI))
330 DEF_MIPS_FTYPE (2, (V2SI, V4HI, V4HI))
332 DEF_MIPS_FTYPE (2, (V4HI, V2SI, V2SI))
333 DEF_MIPS_FTYPE (2, (V4HI, V4HI, UQI))
334 DEF_MIPS_FTYPE (2, (V4HI, V4HI, USI))
335 DEF_MIPS_FTYPE (2, (V4HI, V4HI, V4HI))
336 DEF_MIPS_FTYPE (3, (V4HI, V4HI, V4HI, UQI))
337 DEF_MIPS_FTYPE (3, (V4HI, V4HI, V4HI, USI))
339 DEF_MIPS_FTYPE (1, (V4QI, SI))
340 DEF_MIPS_FTYPE (2, (V4QI, V2HI, V2HI))
341 DEF_MIPS_FTYPE (1, (V4QI, V4QI))
342 DEF_MIPS_FTYPE (2, (V4QI, V4QI, SI))
343 DEF_MIPS_FTYPE (2, (V4QI, V4QI, V4QI))
345 DEF_MIPS_FTYPE (2, (V8QI, V4HI, V4HI))
346 DEF_MIPS_FTYPE (1, (V8QI, V8QI))
347 DEF_MIPS_FTYPE (2, (V8QI, V8QI, V8QI))
349 DEF_MIPS_FTYPE (2, (VOID, SI, CVPOINTER))
350 DEF_MIPS_FTYPE (2, (VOID, SI, SI))
351 DEF_MIPS_FTYPE (1, (VOID, USI))
352 DEF_MIPS_FTYPE (2, (VOID, V2HI, V2HI))
353 DEF_MIPS_FTYPE (2, (VOID, V4QI, V4QI))