2016-09-08 Steven G. Kargl <kargl@gcc.gnu.org>
[official-gcc.git] / gcc / config / tilegx / tilegx-builtins.h
blobd681be29f0336ba026b829462621a3ef9a018045
1 /* Enum for builtin intrinsics for TILE-Gx.
2 Copyright (C) 2011-2016 Free Software Foundation, Inc.
3 Contributed by Walter Lee (walt@tilera.com)
5 This file is part of GCC.
7 GCC is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published
9 by the Free Software Foundation; either version 3, or (at your
10 option) any later version.
12 GCC is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 License for more details.
17 You should have received a copy of the GNU General Public License
18 along with GCC; see the file COPYING3. If not see
19 <http://www.gnu.org/licenses/>. */
21 #ifndef GCC_TILEGX_BUILTINS_H
22 #define GCC_TILEGX_BUILTINS_H
24 enum tilegx_builtin
26 TILEGX_INSN_ADD,
27 TILEGX_INSN_ADDX,
28 TILEGX_INSN_ADDXSC,
29 TILEGX_INSN_AND,
30 TILEGX_INSN_BFEXTS,
31 TILEGX_INSN_BFEXTU,
32 TILEGX_INSN_BFINS,
33 TILEGX_INSN_CLZ,
34 TILEGX_INSN_CMOVEQZ,
35 TILEGX_INSN_CMOVNEZ,
36 TILEGX_INSN_CMPEQ,
37 TILEGX_INSN_CMPEXCH,
38 TILEGX_INSN_CMPEXCH4,
39 TILEGX_INSN_CMPLES,
40 TILEGX_INSN_CMPLEU,
41 TILEGX_INSN_CMPLTS,
42 TILEGX_INSN_CMPLTU,
43 TILEGX_INSN_CMPNE,
44 TILEGX_INSN_CMUL,
45 TILEGX_INSN_CMULA,
46 TILEGX_INSN_CMULAF,
47 TILEGX_INSN_CMULF,
48 TILEGX_INSN_CMULFR,
49 TILEGX_INSN_CMULH,
50 TILEGX_INSN_CMULHR,
51 TILEGX_INSN_CRC32_32,
52 TILEGX_INSN_CRC32_8,
53 TILEGX_INSN_CTZ,
54 TILEGX_INSN_DBLALIGN,
55 TILEGX_INSN_DBLALIGN2,
56 TILEGX_INSN_DBLALIGN4,
57 TILEGX_INSN_DBLALIGN6,
58 TILEGX_INSN_DRAIN,
59 TILEGX_INSN_DTLBPR,
60 TILEGX_INSN_EXCH,
61 TILEGX_INSN_EXCH4,
62 TILEGX_INSN_FDOUBLE_ADD_FLAGS,
63 TILEGX_INSN_FDOUBLE_ADDSUB,
64 TILEGX_INSN_FDOUBLE_MUL_FLAGS,
65 TILEGX_INSN_FDOUBLE_PACK1,
66 TILEGX_INSN_FDOUBLE_PACK2,
67 TILEGX_INSN_FDOUBLE_SUB_FLAGS,
68 TILEGX_INSN_FDOUBLE_UNPACK_MAX,
69 TILEGX_INSN_FDOUBLE_UNPACK_MIN,
70 TILEGX_INSN_FETCHADD,
71 TILEGX_INSN_FETCHADD4,
72 TILEGX_INSN_FETCHADDGEZ,
73 TILEGX_INSN_FETCHADDGEZ4,
74 TILEGX_INSN_FETCHAND,
75 TILEGX_INSN_FETCHAND4,
76 TILEGX_INSN_FETCHOR,
77 TILEGX_INSN_FETCHOR4,
78 TILEGX_INSN_FINV,
79 TILEGX_INSN_FLUSH,
80 TILEGX_INSN_FLUSHWB,
81 TILEGX_INSN_FNOP,
82 TILEGX_INSN_FSINGLE_ADD1,
83 TILEGX_INSN_FSINGLE_ADDSUB2,
84 TILEGX_INSN_FSINGLE_MUL1,
85 TILEGX_INSN_FSINGLE_MUL2,
86 TILEGX_INSN_FSINGLE_PACK1,
87 TILEGX_INSN_FSINGLE_PACK2,
88 TILEGX_INSN_FSINGLE_SUB1,
89 TILEGX_INSN_ICOH,
90 TILEGX_INSN_ILL,
91 TILEGX_INSN_INFO,
92 TILEGX_INSN_INFOL,
93 TILEGX_INSN_INV,
94 TILEGX_INSN_LD,
95 TILEGX_INSN_LD1S,
96 TILEGX_INSN_LD1U,
97 TILEGX_INSN_LD2S,
98 TILEGX_INSN_LD2U,
99 TILEGX_INSN_LD4S,
100 TILEGX_INSN_LD4U,
101 TILEGX_INSN_LDNA,
102 TILEGX_INSN_LDNT,
103 TILEGX_INSN_LDNT1S,
104 TILEGX_INSN_LDNT1U,
105 TILEGX_INSN_LDNT2S,
106 TILEGX_INSN_LDNT2U,
107 TILEGX_INSN_LDNT4S,
108 TILEGX_INSN_LDNT4U,
109 TILEGX_INSN_LD_L2,
110 TILEGX_INSN_LD1S_L2,
111 TILEGX_INSN_LD1U_L2,
112 TILEGX_INSN_LD2S_L2,
113 TILEGX_INSN_LD2U_L2,
114 TILEGX_INSN_LD4S_L2,
115 TILEGX_INSN_LD4U_L2,
116 TILEGX_INSN_LDNA_L2,
117 TILEGX_INSN_LDNT_L2,
118 TILEGX_INSN_LDNT1S_L2,
119 TILEGX_INSN_LDNT1U_L2,
120 TILEGX_INSN_LDNT2S_L2,
121 TILEGX_INSN_LDNT2U_L2,
122 TILEGX_INSN_LDNT4S_L2,
123 TILEGX_INSN_LDNT4U_L2,
124 TILEGX_INSN_LD_MISS,
125 TILEGX_INSN_LD1S_MISS,
126 TILEGX_INSN_LD1U_MISS,
127 TILEGX_INSN_LD2S_MISS,
128 TILEGX_INSN_LD2U_MISS,
129 TILEGX_INSN_LD4S_MISS,
130 TILEGX_INSN_LD4U_MISS,
131 TILEGX_INSN_LDNA_MISS,
132 TILEGX_INSN_LDNT_MISS,
133 TILEGX_INSN_LDNT1S_MISS,
134 TILEGX_INSN_LDNT1U_MISS,
135 TILEGX_INSN_LDNT2S_MISS,
136 TILEGX_INSN_LDNT2U_MISS,
137 TILEGX_INSN_LDNT4S_MISS,
138 TILEGX_INSN_LDNT4U_MISS,
139 TILEGX_INSN_LNK,
140 TILEGX_INSN_MF,
141 TILEGX_INSN_MFSPR,
142 TILEGX_INSN_MM,
143 TILEGX_INSN_MNZ,
144 TILEGX_INSN_MOVE,
145 TILEGX_INSN_MTSPR,
146 TILEGX_INSN_MUL_HS_HS,
147 TILEGX_INSN_MUL_HS_HU,
148 TILEGX_INSN_MUL_HS_LS,
149 TILEGX_INSN_MUL_HS_LU,
150 TILEGX_INSN_MUL_HU_HU,
151 TILEGX_INSN_MUL_HU_LS,
152 TILEGX_INSN_MUL_HU_LU,
153 TILEGX_INSN_MUL_LS_LS,
154 TILEGX_INSN_MUL_LS_LU,
155 TILEGX_INSN_MUL_LU_LU,
156 TILEGX_INSN_MULA_HS_HS,
157 TILEGX_INSN_MULA_HS_HU,
158 TILEGX_INSN_MULA_HS_LS,
159 TILEGX_INSN_MULA_HS_LU,
160 TILEGX_INSN_MULA_HU_HU,
161 TILEGX_INSN_MULA_HU_LS,
162 TILEGX_INSN_MULA_HU_LU,
163 TILEGX_INSN_MULA_LS_LS,
164 TILEGX_INSN_MULA_LS_LU,
165 TILEGX_INSN_MULA_LU_LU,
166 TILEGX_INSN_MULAX,
167 TILEGX_INSN_MULX,
168 TILEGX_INSN_MZ,
169 TILEGX_INSN_NAP,
170 TILEGX_INSN_NOP,
171 TILEGX_INSN_NOR,
172 TILEGX_INSN_OR,
173 TILEGX_INSN_PCNT,
174 TILEGX_INSN_PREFETCH_L1,
175 TILEGX_INSN_PREFETCH_L1_FAULT,
176 TILEGX_INSN_PREFETCH_L2,
177 TILEGX_INSN_PREFETCH_L2_FAULT,
178 TILEGX_INSN_PREFETCH_L3,
179 TILEGX_INSN_PREFETCH_L3_FAULT,
180 TILEGX_INSN_REVBITS,
181 TILEGX_INSN_REVBYTES,
182 TILEGX_INSN_ROTL,
183 TILEGX_INSN_SHL,
184 TILEGX_INSN_SHL16INSLI,
185 TILEGX_INSN_SHL1ADD,
186 TILEGX_INSN_SHL1ADDX,
187 TILEGX_INSN_SHL2ADD,
188 TILEGX_INSN_SHL2ADDX,
189 TILEGX_INSN_SHL3ADD,
190 TILEGX_INSN_SHL3ADDX,
191 TILEGX_INSN_SHLX,
192 TILEGX_INSN_SHRS,
193 TILEGX_INSN_SHRU,
194 TILEGX_INSN_SHRUX,
195 TILEGX_INSN_SHUFFLEBYTES,
196 TILEGX_INSN_SHUFFLEBYTES1,
197 TILEGX_INSN_ST,
198 TILEGX_INSN_ST1,
199 TILEGX_INSN_ST2,
200 TILEGX_INSN_ST4,
201 TILEGX_INSN_STNT,
202 TILEGX_INSN_STNT1,
203 TILEGX_INSN_STNT2,
204 TILEGX_INSN_STNT4,
205 TILEGX_INSN_SUB,
206 TILEGX_INSN_SUBX,
207 TILEGX_INSN_SUBXSC,
208 TILEGX_INSN_TBLIDXB0,
209 TILEGX_INSN_TBLIDXB1,
210 TILEGX_INSN_TBLIDXB2,
211 TILEGX_INSN_TBLIDXB3,
212 TILEGX_INSN_V1ADD,
213 TILEGX_INSN_V1ADDI,
214 TILEGX_INSN_V1ADDUC,
215 TILEGX_INSN_V1ADIFFU,
216 TILEGX_INSN_V1AVGU,
217 TILEGX_INSN_V1CMPEQ,
218 TILEGX_INSN_V1CMPEQI,
219 TILEGX_INSN_V1CMPLES,
220 TILEGX_INSN_V1CMPLEU,
221 TILEGX_INSN_V1CMPLTS,
222 TILEGX_INSN_V1CMPLTSI,
223 TILEGX_INSN_V1CMPLTU,
224 TILEGX_INSN_V1CMPLTUI,
225 TILEGX_INSN_V1CMPNE,
226 TILEGX_INSN_V1DDOTPU,
227 TILEGX_INSN_V1DDOTPUA,
228 TILEGX_INSN_V1DDOTPUS,
229 TILEGX_INSN_V1DDOTPUSA,
230 TILEGX_INSN_V1DOTP,
231 TILEGX_INSN_V1DOTPA,
232 TILEGX_INSN_V1DOTPU,
233 TILEGX_INSN_V1DOTPUA,
234 TILEGX_INSN_V1DOTPUS,
235 TILEGX_INSN_V1DOTPUSA,
236 TILEGX_INSN_V1INT_H,
237 TILEGX_INSN_V1INT_L,
238 TILEGX_INSN_V1MAXU,
239 TILEGX_INSN_V1MAXUI,
240 TILEGX_INSN_V1MINU,
241 TILEGX_INSN_V1MINUI,
242 TILEGX_INSN_V1MNZ,
243 TILEGX_INSN_V1MULTU,
244 TILEGX_INSN_V1MULU,
245 TILEGX_INSN_V1MULUS,
246 TILEGX_INSN_V1MZ,
247 TILEGX_INSN_V1SADAU,
248 TILEGX_INSN_V1SADU,
249 TILEGX_INSN_V1SHL,
250 TILEGX_INSN_V1SHLI,
251 TILEGX_INSN_V1SHRS,
252 TILEGX_INSN_V1SHRSI,
253 TILEGX_INSN_V1SHRU,
254 TILEGX_INSN_V1SHRUI,
255 TILEGX_INSN_V1SUB,
256 TILEGX_INSN_V1SUBUC,
257 TILEGX_INSN_V2ADD,
258 TILEGX_INSN_V2ADDI,
259 TILEGX_INSN_V2ADDSC,
260 TILEGX_INSN_V2ADIFFS,
261 TILEGX_INSN_V2AVGS,
262 TILEGX_INSN_V2CMPEQ,
263 TILEGX_INSN_V2CMPEQI,
264 TILEGX_INSN_V2CMPLES,
265 TILEGX_INSN_V2CMPLEU,
266 TILEGX_INSN_V2CMPLTS,
267 TILEGX_INSN_V2CMPLTSI,
268 TILEGX_INSN_V2CMPLTU,
269 TILEGX_INSN_V2CMPLTUI,
270 TILEGX_INSN_V2CMPNE,
271 TILEGX_INSN_V2DOTP,
272 TILEGX_INSN_V2DOTPA,
273 TILEGX_INSN_V2INT_H,
274 TILEGX_INSN_V2INT_L,
275 TILEGX_INSN_V2MAXS,
276 TILEGX_INSN_V2MAXSI,
277 TILEGX_INSN_V2MINS,
278 TILEGX_INSN_V2MINSI,
279 TILEGX_INSN_V2MNZ,
280 TILEGX_INSN_V2MULFSC,
281 TILEGX_INSN_V2MULS,
282 TILEGX_INSN_V2MULTS,
283 TILEGX_INSN_V2MZ,
284 TILEGX_INSN_V2PACKH,
285 TILEGX_INSN_V2PACKL,
286 TILEGX_INSN_V2PACKUC,
287 TILEGX_INSN_V2SADAS,
288 TILEGX_INSN_V2SADAU,
289 TILEGX_INSN_V2SADS,
290 TILEGX_INSN_V2SADU,
291 TILEGX_INSN_V2SHL,
292 TILEGX_INSN_V2SHLI,
293 TILEGX_INSN_V2SHLSC,
294 TILEGX_INSN_V2SHRS,
295 TILEGX_INSN_V2SHRSI,
296 TILEGX_INSN_V2SHRU,
297 TILEGX_INSN_V2SHRUI,
298 TILEGX_INSN_V2SUB,
299 TILEGX_INSN_V2SUBSC,
300 TILEGX_INSN_V4ADD,
301 TILEGX_INSN_V4ADDSC,
302 TILEGX_INSN_V4INT_H,
303 TILEGX_INSN_V4INT_L,
304 TILEGX_INSN_V4PACKSC,
305 TILEGX_INSN_V4SHL,
306 TILEGX_INSN_V4SHLSC,
307 TILEGX_INSN_V4SHRS,
308 TILEGX_INSN_V4SHRU,
309 TILEGX_INSN_V4SUB,
310 TILEGX_INSN_V4SUBSC,
311 TILEGX_INSN_WH64,
312 TILEGX_INSN_XOR,
313 TILEGX_NETWORK_BARRIER,
314 TILEGX_IDN0_RECEIVE,
315 TILEGX_IDN1_RECEIVE,
316 TILEGX_IDN_SEND,
317 TILEGX_UDN0_RECEIVE,
318 TILEGX_UDN1_RECEIVE,
319 TILEGX_UDN2_RECEIVE,
320 TILEGX_UDN3_RECEIVE,
321 TILEGX_UDN_SEND,
322 TILEGX_BUILTIN_max
325 #endif /* !GCC_TILEGX_BUILTINS_H */