1 /* Enum for builtin intrinsics for TILEPro.
2    Copyright (C) 2011-2021 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_TILEPRO_BUILTINS_H
22 #define GCC_TILEPRO_BUILTINS_H
23 
24 enum tilepro_builtin
25 {
26   TILEPRO_INSN_ADD,
27   TILEPRO_INSN_ADDB,
28   TILEPRO_INSN_ADDBS_U,
29   TILEPRO_INSN_ADDH,
30   TILEPRO_INSN_ADDHS,
31   TILEPRO_INSN_ADDIB,
32   TILEPRO_INSN_ADDIH,
33   TILEPRO_INSN_ADDLIS,
34   TILEPRO_INSN_ADDS,
35   TILEPRO_INSN_ADIFFB_U,
36   TILEPRO_INSN_ADIFFH,
37   TILEPRO_INSN_AND,
38   TILEPRO_INSN_AULI,
39   TILEPRO_INSN_AVGB_U,
40   TILEPRO_INSN_AVGH,
41   TILEPRO_INSN_BITX,
42   TILEPRO_INSN_BYTEX,
43   TILEPRO_INSN_CLZ,
44   TILEPRO_INSN_CRC32_32,
45   TILEPRO_INSN_CRC32_8,
46   TILEPRO_INSN_CTZ,
47   TILEPRO_INSN_DRAIN,
48   TILEPRO_INSN_DTLBPR,
49   TILEPRO_INSN_DWORD_ALIGN,
50   TILEPRO_INSN_FINV,
51   TILEPRO_INSN_FLUSH,
52   TILEPRO_INSN_FNOP,
53   TILEPRO_INSN_ICOH,
54   TILEPRO_INSN_ILL,
55   TILEPRO_INSN_INFO,
56   TILEPRO_INSN_INFOL,
57   TILEPRO_INSN_INTHB,
58   TILEPRO_INSN_INTHH,
59   TILEPRO_INSN_INTLB,
60   TILEPRO_INSN_INTLH,
61   TILEPRO_INSN_INV,
62   TILEPRO_INSN_LB,
63   TILEPRO_INSN_LB_U,
64   TILEPRO_INSN_LH,
65   TILEPRO_INSN_LH_U,
66   TILEPRO_INSN_LNK,
67   TILEPRO_INSN_LW,
68   TILEPRO_INSN_LW_NA,
69   TILEPRO_INSN_LB_L2,
70   TILEPRO_INSN_LB_U_L2,
71   TILEPRO_INSN_LH_L2,
72   TILEPRO_INSN_LH_U_L2,
73   TILEPRO_INSN_LW_L2,
74   TILEPRO_INSN_LW_NA_L2,
75   TILEPRO_INSN_LB_MISS,
76   TILEPRO_INSN_LB_U_MISS,
77   TILEPRO_INSN_LH_MISS,
78   TILEPRO_INSN_LH_U_MISS,
79   TILEPRO_INSN_LW_MISS,
80   TILEPRO_INSN_LW_NA_MISS,
81   TILEPRO_INSN_MAXB_U,
82   TILEPRO_INSN_MAXH,
83   TILEPRO_INSN_MAXIB_U,
84   TILEPRO_INSN_MAXIH,
85   TILEPRO_INSN_MF,
86   TILEPRO_INSN_MFSPR,
87   TILEPRO_INSN_MINB_U,
88   TILEPRO_INSN_MINH,
89   TILEPRO_INSN_MINIB_U,
90   TILEPRO_INSN_MINIH,
91   TILEPRO_INSN_MM,
92   TILEPRO_INSN_MNZ,
93   TILEPRO_INSN_MNZB,
94   TILEPRO_INSN_MNZH,
95   TILEPRO_INSN_MOVE,
96   TILEPRO_INSN_MOVELIS,
97   TILEPRO_INSN_MTSPR,
98   TILEPRO_INSN_MULHH_SS,
99   TILEPRO_INSN_MULHH_SU,
100   TILEPRO_INSN_MULHH_UU,
101   TILEPRO_INSN_MULHHA_SS,
102   TILEPRO_INSN_MULHHA_SU,
103   TILEPRO_INSN_MULHHA_UU,
104   TILEPRO_INSN_MULHHSA_UU,
105   TILEPRO_INSN_MULHL_SS,
106   TILEPRO_INSN_MULHL_SU,
107   TILEPRO_INSN_MULHL_US,
108   TILEPRO_INSN_MULHL_UU,
109   TILEPRO_INSN_MULHLA_SS,
110   TILEPRO_INSN_MULHLA_SU,
111   TILEPRO_INSN_MULHLA_US,
112   TILEPRO_INSN_MULHLA_UU,
113   TILEPRO_INSN_MULHLSA_UU,
114   TILEPRO_INSN_MULLL_SS,
115   TILEPRO_INSN_MULLL_SU,
116   TILEPRO_INSN_MULLL_UU,
117   TILEPRO_INSN_MULLLA_SS,
118   TILEPRO_INSN_MULLLA_SU,
119   TILEPRO_INSN_MULLLA_UU,
120   TILEPRO_INSN_MULLLSA_UU,
121   TILEPRO_INSN_MVNZ,
122   TILEPRO_INSN_MVZ,
123   TILEPRO_INSN_MZ,
124   TILEPRO_INSN_MZB,
125   TILEPRO_INSN_MZH,
126   TILEPRO_INSN_NAP,
127   TILEPRO_INSN_NOP,
128   TILEPRO_INSN_NOR,
129   TILEPRO_INSN_OR,
130   TILEPRO_INSN_PACKBS_U,
131   TILEPRO_INSN_PACKHB,
132   TILEPRO_INSN_PACKHS,
133   TILEPRO_INSN_PACKLB,
134   TILEPRO_INSN_PCNT,
135   TILEPRO_INSN_PREFETCH,
136   TILEPRO_INSN_PREFETCH_L1,
137   TILEPRO_INSN_RL,
138   TILEPRO_INSN_S1A,
139   TILEPRO_INSN_S2A,
140   TILEPRO_INSN_S3A,
141   TILEPRO_INSN_SADAB_U,
142   TILEPRO_INSN_SADAH,
143   TILEPRO_INSN_SADAH_U,
144   TILEPRO_INSN_SADB_U,
145   TILEPRO_INSN_SADH,
146   TILEPRO_INSN_SADH_U,
147   TILEPRO_INSN_SB,
148   TILEPRO_INSN_SEQ,
149   TILEPRO_INSN_SEQB,
150   TILEPRO_INSN_SEQH,
151   TILEPRO_INSN_SEQIB,
152   TILEPRO_INSN_SEQIH,
153   TILEPRO_INSN_SH,
154   TILEPRO_INSN_SHL,
155   TILEPRO_INSN_SHLB,
156   TILEPRO_INSN_SHLH,
157   TILEPRO_INSN_SHLIB,
158   TILEPRO_INSN_SHLIH,
159   TILEPRO_INSN_SHR,
160   TILEPRO_INSN_SHRB,
161   TILEPRO_INSN_SHRH,
162   TILEPRO_INSN_SHRIB,
163   TILEPRO_INSN_SHRIH,
164   TILEPRO_INSN_SLT,
165   TILEPRO_INSN_SLT_U,
166   TILEPRO_INSN_SLTB,
167   TILEPRO_INSN_SLTB_U,
168   TILEPRO_INSN_SLTE,
169   TILEPRO_INSN_SLTE_U,
170   TILEPRO_INSN_SLTEB,
171   TILEPRO_INSN_SLTEB_U,
172   TILEPRO_INSN_SLTEH,
173   TILEPRO_INSN_SLTEH_U,
174   TILEPRO_INSN_SLTH,
175   TILEPRO_INSN_SLTH_U,
176   TILEPRO_INSN_SLTIB,
177   TILEPRO_INSN_SLTIB_U,
178   TILEPRO_INSN_SLTIH,
179   TILEPRO_INSN_SLTIH_U,
180   TILEPRO_INSN_SNE,
181   TILEPRO_INSN_SNEB,
182   TILEPRO_INSN_SNEH,
183   TILEPRO_INSN_SRA,
184   TILEPRO_INSN_SRAB,
185   TILEPRO_INSN_SRAH,
186   TILEPRO_INSN_SRAIB,
187   TILEPRO_INSN_SRAIH,
188   TILEPRO_INSN_SUB,
189   TILEPRO_INSN_SUBB,
190   TILEPRO_INSN_SUBBS_U,
191   TILEPRO_INSN_SUBH,
192   TILEPRO_INSN_SUBHS,
193   TILEPRO_INSN_SUBS,
194   TILEPRO_INSN_SW,
195   TILEPRO_INSN_TBLIDXB0,
196   TILEPRO_INSN_TBLIDXB1,
197   TILEPRO_INSN_TBLIDXB2,
198   TILEPRO_INSN_TBLIDXB3,
199   TILEPRO_INSN_TNS,
200   TILEPRO_INSN_WH64,
201   TILEPRO_INSN_XOR,
202   TILEPRO_NETWORK_BARRIER,
203   TILEPRO_IDN0_RECEIVE,
204   TILEPRO_IDN1_RECEIVE,
205   TILEPRO_IDN_SEND,
206   TILEPRO_SN_RECEIVE,
207   TILEPRO_SN_SEND,
208   TILEPRO_UDN0_RECEIVE,
209   TILEPRO_UDN1_RECEIVE,
210   TILEPRO_UDN2_RECEIVE,
211   TILEPRO_UDN3_RECEIVE,
212   TILEPRO_UDN_SEND,
213   TILEPRO_BUILTIN_max
214 };
215 
216 #endif /* !GCC_TILEPRO_BUILTINS_H */
217