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