Home | History | Annotate | Line # | Download | only in tilegx
      1 /* Enum for builtin intrinsics for TILE-Gx.
      2    Copyright (C) 2011-2022 Free Software Foundation, Inc.
      3    Contributed by Walter Lee (walt (at) 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