1 /* Enum for builtin intrinsics for TILE-Gx. 2 Copyright (C) 2011-2014 Free Software Foundation, Inc. 3 Contributed by Walter Lee (walt@tilera.com) 4 5 This file is part of GCC. 6 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. 11 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. 16 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/>. */ 20 21 #ifndef GCC_TILEGX_BUILTINS_H 22 #define GCC_TILEGX_BUILTINS_H 23 24 enum tilegx_builtin 25 { 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 323 }; 324 325 #endif /* !GCC_TILEGX_BUILTINS_H */ 326