1 /* Enum for builtin intrinsics for TILE-Gx.
2 Copyright (C) 2011-2013 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
55 TILEGX_INSN_DBLALIGN2
,
56 TILEGX_INSN_DBLALIGN4
,
57 TILEGX_INSN_DBLALIGN6
,
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
,
71 TILEGX_INSN_FETCHADD4
,
72 TILEGX_INSN_FETCHADDGEZ
,
73 TILEGX_INSN_FETCHADDGEZ4
,
75 TILEGX_INSN_FETCHAND4
,
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
,
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
,
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
,
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
,
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
,
181 TILEGX_INSN_REVBYTES
,
184 TILEGX_INSN_SHL16INSLI
,
186 TILEGX_INSN_SHL1ADDX
,
188 TILEGX_INSN_SHL2ADDX
,
190 TILEGX_INSN_SHL3ADDX
,
195 TILEGX_INSN_SHUFFLEBYTES
,
207 TILEGX_INSN_TBLIDXB0
,
208 TILEGX_INSN_TBLIDXB1
,
209 TILEGX_INSN_TBLIDXB2
,
210 TILEGX_INSN_TBLIDXB3
,
214 TILEGX_INSN_V1ADIFFU
,
217 TILEGX_INSN_V1CMPEQI
,
218 TILEGX_INSN_V1CMPLES
,
219 TILEGX_INSN_V1CMPLEU
,
220 TILEGX_INSN_V1CMPLTS
,
221 TILEGX_INSN_V1CMPLTSI
,
222 TILEGX_INSN_V1CMPLTU
,
223 TILEGX_INSN_V1CMPLTUI
,
225 TILEGX_INSN_V1DDOTPU
,
226 TILEGX_INSN_V1DDOTPUA
,
227 TILEGX_INSN_V1DDOTPUS
,
228 TILEGX_INSN_V1DDOTPUSA
,
232 TILEGX_INSN_V1DOTPUA
,
233 TILEGX_INSN_V1DOTPUS
,
234 TILEGX_INSN_V1DOTPUSA
,
259 TILEGX_INSN_V2ADIFFS
,
262 TILEGX_INSN_V2CMPEQI
,
263 TILEGX_INSN_V2CMPLES
,
264 TILEGX_INSN_V2CMPLEU
,
265 TILEGX_INSN_V2CMPLTS
,
266 TILEGX_INSN_V2CMPLTSI
,
267 TILEGX_INSN_V2CMPLTU
,
268 TILEGX_INSN_V2CMPLTUI
,
279 TILEGX_INSN_V2MULFSC
,
285 TILEGX_INSN_V2PACKUC
,
303 TILEGX_INSN_V4PACKSC
,
312 TILEGX_NETWORK_BARRIER
,
324 #endif /* !GCC_TILEGX_BUILTINS_H */