AMDGPU: Mark test as XFAIL in expensive_checks builds
[llvm-project.git] / llvm / lib / Target / ARM / ARMArchitectures.td
blob301ed5bf3e3fc6e0ba92e76ce7f5579096b3ff17
1 class Architecture<string fname, string aname, list<SubtargetFeature> features>
2   : SubtargetFeature<fname, "ARMArch", aname,
3                      !strconcat(aname, " architecture"), features>;
5 //===----------------------------------------------------------------------===//
6 // ARM architectures
7 //
9 def ARMv4     : Architecture<"armv4",     "ARMv4",    []>;
11 def ARMv4t    : Architecture<"armv4t",    "ARMv4t",   [HasV4TOps]>;
13 def ARMv5t    : Architecture<"armv5t",    "ARMv5t",   [HasV5TOps]>;
15 def ARMv5te   : Architecture<"armv5te",   "ARMv5te",  [HasV5TEOps]>;
17 def ARMv5tej  : Architecture<"armv5tej",  "ARMv5tej", [HasV5TEOps]>;
19 def ARMv6     : Architecture<"armv6",     "ARMv6",    [HasV6Ops,
20                                                        FeatureDSP]>;
22 def ARMv6t2   : Architecture<"armv6t2",   "ARMv6t2",  [HasV6T2Ops,
23                                                        FeatureDSP]>;
25 def ARMv6k    : Architecture<"armv6k",    "ARMv6k",   [HasV6KOps]>;
27 def ARMv6kz   : Architecture<"armv6kz",   "ARMv6kz",  [HasV6KOps,
28                                                        FeatureTrustZone]>;
30 def ARMv6m    : Architecture<"armv6-m",   "ARMv6m",   [HasV6MOps,
31                                                        FeatureNoARM,
32                                                        ModeThumb,
33                                                        FeatureDB,
34                                                        FeatureMClass,
35                                                        FeatureStrictAlign]>;
37 def ARMv6sm   : Architecture<"armv6s-m",  "ARMv6sm",  [HasV6MOps,
38                                                        FeatureNoARM,
39                                                        ModeThumb,
40                                                        FeatureDB,
41                                                        FeatureMClass,
42                                                        FeatureStrictAlign]>;
44 def ARMv7a    : Architecture<"armv7-a",   "ARMv7a",   [HasV7Ops,
45                                                        FeatureNEON,
46                                                        FeatureDB,
47                                                        FeatureDSP,
48                                                        FeatureAClass,
49                                                        FeaturePerfMon]>;
51 def ARMv7ve   : Architecture<"armv7ve",   "ARMv7ve",  [HasV7Ops,
52                                                        FeatureNEON,
53                                                        FeatureDB,
54                                                        FeatureDSP,
55                                                        FeatureTrustZone,
56                                                        FeatureMP,
57                                                        FeatureVirtualization,
58                                                        FeatureAClass,
59                                                        FeaturePerfMon]>;
61 def ARMv7r    : Architecture<"armv7-r",   "ARMv7r",   [HasV7Ops,
62                                                        FeatureDB,
63                                                        FeatureDSP,
64                                                        FeatureHWDivThumb,
65                                                        FeatureRClass,
66                                                        FeaturePerfMon]>;
68 def ARMv7m    : Architecture<"armv7-m",   "ARMv7m",   [HasV7Ops,
69                                                        FeatureThumb2,
70                                                        FeatureNoARM,
71                                                        ModeThumb,
72                                                        FeatureDB,
73                                                        FeatureHWDivThumb,
74                                                        FeatureMClass]>;
76 def ARMv7em   : Architecture<"armv7e-m",  "ARMv7em",  [HasV7Ops,
77                                                        FeatureThumb2,
78                                                        FeatureNoARM,
79                                                        ModeThumb,
80                                                        FeatureDB,
81                                                        FeatureHWDivThumb,
82                                                        FeatureMClass,
83                                                        FeatureDSP]>;
85 def ARMv8a    : Architecture<"armv8-a",   "ARMv8a",   [HasV8Ops,
86                                                        FeatureAClass,
87                                                        FeatureDB,
88                                                        FeatureFPARMv8,
89                                                        FeatureNEON,
90                                                        FeatureDSP,
91                                                        FeatureTrustZone,
92                                                        FeatureMP,
93                                                        FeatureVirtualization,
94                                                        FeatureCrypto,
95                                                        FeatureCRC]>;
97 def ARMv81a   : Architecture<"armv8.1-a", "ARMv81a",  [HasV8_1aOps,
98                                                        FeatureAClass,
99                                                        FeatureDB,
100                                                        FeatureFPARMv8,
101                                                        FeatureNEON,
102                                                        FeatureDSP,
103                                                        FeatureTrustZone,
104                                                        FeatureMP,
105                                                        FeatureVirtualization,
106                                                        FeatureCrypto,
107                                                        FeatureCRC]>;
109 def ARMv82a   : Architecture<"armv8.2-a", "ARMv82a",  [HasV8_2aOps,
110                                                        FeatureAClass,
111                                                        FeatureDB,
112                                                        FeatureFPARMv8,
113                                                        FeatureNEON,
114                                                        FeatureDSP,
115                                                        FeatureTrustZone,
116                                                        FeatureMP,
117                                                        FeatureVirtualization,
118                                                        FeatureCrypto,
119                                                        FeatureCRC,
120                                                        FeatureRAS]>;
122 def ARMv83a   : Architecture<"armv8.3-a", "ARMv83a",  [HasV8_3aOps,
123                                                        FeatureAClass,
124                                                        FeatureDB,
125                                                        FeatureFPARMv8,
126                                                        FeatureNEON,
127                                                        FeatureDSP,
128                                                        FeatureTrustZone,
129                                                        FeatureMP,
130                                                        FeatureVirtualization,
131                                                        FeatureCrypto,
132                                                        FeatureCRC,
133                                                        FeatureRAS]>;
135 def ARMv84a   : Architecture<"armv8.4-a", "ARMv84a",  [HasV8_4aOps,
136                                                        FeatureAClass,
137                                                        FeatureDB,
138                                                        FeatureFPARMv8,
139                                                        FeatureNEON,
140                                                        FeatureDSP,
141                                                        FeatureTrustZone,
142                                                        FeatureMP,
143                                                        FeatureVirtualization,
144                                                        FeatureCrypto,
145                                                        FeatureCRC,
146                                                        FeatureRAS,
147                                                        FeatureDotProd]>;
149 def ARMv85a   : Architecture<"armv8.5-a", "ARMv85a",  [HasV8_5aOps,
150                                                        FeatureAClass,
151                                                        FeatureDB,
152                                                        FeatureFPARMv8,
153                                                        FeatureNEON,
154                                                        FeatureDSP,
155                                                        FeatureTrustZone,
156                                                        FeatureMP,
157                                                        FeatureVirtualization,
158                                                        FeatureCrypto,
159                                                        FeatureCRC,
160                                                        FeatureRAS,
161                                                        FeatureDotProd]>;
162 def ARMv86a   : Architecture<"armv8.6-a", "ARMv86a",  [HasV8_6aOps,
163                                                        FeatureAClass,
164                                                        FeatureDB,
165                                                        FeatureFPARMv8,
166                                                        FeatureNEON,
167                                                        FeatureDSP,
168                                                        FeatureTrustZone,
169                                                        FeatureMP,
170                                                        FeatureVirtualization,
171                                                        FeatureCrypto,
172                                                        FeatureCRC,
173                                                        FeatureRAS,
174                                                        FeatureDotProd]>;
175 def ARMv87a   : Architecture<"armv8.7-a", "ARMv87a",  [HasV8_7aOps,
176                                                        FeatureAClass,
177                                                        FeatureDB,
178                                                        FeatureFPARMv8,
179                                                        FeatureNEON,
180                                                        FeatureDSP,
181                                                        FeatureTrustZone,
182                                                        FeatureMP,
183                                                        FeatureVirtualization,
184                                                        FeatureCrypto,
185                                                        FeatureCRC,
186                                                        FeatureRAS,
187                                                        FeatureDotProd]>;
188 def ARMv88a   : Architecture<"armv8.8-a", "ARMv88a",  [HasV8_8aOps,
189                                                        FeatureAClass,
190                                                        FeatureDB,
191                                                        FeatureFPARMv8,
192                                                        FeatureNEON,
193                                                        FeatureDSP,
194                                                        FeatureTrustZone,
195                                                        FeatureMP,
196                                                        FeatureVirtualization,
197                                                        FeatureCrypto,
198                                                        FeatureCRC,
199                                                        FeatureRAS,
200                                                        FeatureDotProd]>;
201 def ARMv89a   : Architecture<"armv8.9-a", "ARMv89a",  [HasV8_9aOps,
202                                                        FeatureAClass,
203                                                        FeatureDB,
204                                                        FeatureFPARMv8,
205                                                        FeatureNEON,
206                                                        FeatureDSP,
207                                                        FeatureTrustZone,
208                                                        FeatureMP,
209                                                        FeatureVirtualization,
210                                                        FeatureCrypto,
211                                                        FeatureCRC,
212                                                        FeatureRAS,
213                                                        FeatureDotProd]>;
215 def ARMv9a   : Architecture<"armv9-a", "ARMv9a",       [HasV9_0aOps,
216                                                        FeatureAClass,
217                                                        FeatureDB,
218                                                        FeatureFPARMv8,
219                                                        FeatureNEON,
220                                                        FeatureDSP,
221                                                        FeatureTrustZone,
222                                                        FeatureMP,
223                                                        FeatureVirtualization,
224                                                        FeatureCRC,
225                                                        FeatureRAS,
226                                                        FeatureDotProd]>;
227 def ARMv91a   : Architecture<"armv9.1-a", "ARMv91a",   [HasV9_1aOps,
228                                                        FeatureAClass,
229                                                        FeatureDB,
230                                                        FeatureFPARMv8,
231                                                        FeatureNEON,
232                                                        FeatureDSP,
233                                                        FeatureTrustZone,
234                                                        FeatureMP,
235                                                        FeatureVirtualization,
236                                                        FeatureCRC,
237                                                        FeatureRAS,
238                                                        FeatureDotProd]>;
239 def ARMv92a   : Architecture<"armv9.2-a", "ARMv92a",  [HasV9_2aOps,
240                                                        FeatureAClass,
241                                                        FeatureDB,
242                                                        FeatureFPARMv8,
243                                                        FeatureNEON,
244                                                        FeatureDSP,
245                                                        FeatureTrustZone,
246                                                        FeatureMP,
247                                                        FeatureVirtualization,
248                                                        FeatureCRC,
249                                                        FeatureRAS,
250                                                        FeatureDotProd]>;
251 def ARMv93a   : Architecture<"armv9.3-a", "ARMv93a",  [HasV9_3aOps,
252                                                        FeatureAClass,
253                                                        FeatureDB,
254                                                        FeatureFPARMv8,
255                                                        FeatureNEON,
256                                                        FeatureDSP,
257                                                        FeatureTrustZone,
258                                                        FeatureMP,
259                                                        FeatureVirtualization,
260                                                        FeatureCrypto,
261                                                        FeatureCRC,
262                                                        FeatureRAS,
263                                                        FeatureDotProd]>;
264 def ARMv94a   : Architecture<"armv9.4-a", "ARMv94a",  [HasV9_4aOps,
265                                                        FeatureAClass,
266                                                        FeatureDB,
267                                                        FeatureFPARMv8,
268                                                        FeatureNEON,
269                                                        FeatureDSP,
270                                                        FeatureTrustZone,
271                                                        FeatureMP,
272                                                        FeatureVirtualization,
273                                                        FeatureCRC,
274                                                        FeatureRAS,
275                                                        FeatureDotProd]>;
276 def ARMv95a   : Architecture<"armv9.5-a", "ARMv95a",  [HasV9_5aOps,
277                                                        FeatureAClass,
278                                                        FeatureDB,
279                                                        FeatureFPARMv8,
280                                                        FeatureNEON,
281                                                        FeatureDSP,
282                                                        FeatureTrustZone,
283                                                        FeatureMP,
284                                                        FeatureVirtualization,
285                                                        FeatureCRC,
286                                                        FeatureRAS,
287                                                        FeatureDotProd]>;
288 def ARMv96a   : Architecture<"armv9.6-a", "ARMv96a",  [HasV9_6aOps,
289                                                        FeatureAClass,
290                                                        FeatureDB,
291                                                        FeatureFPARMv8,
292                                                        FeatureNEON,
293                                                        FeatureDSP,
294                                                        FeatureTrustZone,
295                                                        FeatureMP,
296                                                        FeatureVirtualization,
297                                                        FeatureCRC,
298                                                        FeatureRAS,
299                                                        FeatureDotProd]>;
300 def ARMv8r    : Architecture<"armv8-r",   "ARMv8r",   [HasV8Ops,
301                                                        FeatureRClass,
302                                                        FeatureDB,
303                                                        FeatureDFB,
304                                                        FeatureDSP,
305                                                        FeatureCRC,
306                                                        FeatureMP,
307                                                        FeatureFPARMv8_D16_SP,
308                                                        FeatureVirtualization]>;
310 def ARMv8mBaseline : Architecture<"armv8-m.base", "ARMv8mBaseline",
311                                                       [HasV8MBaselineOps,
312                                                        FeatureNoARM,
313                                                        ModeThumb,
314                                                        FeatureDB,
315                                                        FeatureHWDivThumb,
316                                                        FeatureV7Clrex,
317                                                        Feature8MSecExt,
318                                                        FeatureAcquireRelease,
319                                                        FeatureMClass,
320                                                        FeatureStrictAlign]>;
322 def ARMv8mMainline : Architecture<"armv8-m.main", "ARMv8mMainline",
323                                                       [HasV8MMainlineOps,
324                                                        FeatureNoARM,
325                                                        ModeThumb,
326                                                        FeatureDB,
327                                                        FeatureHWDivThumb,
328                                                        Feature8MSecExt,
329                                                        FeatureAcquireRelease,
330                                                        FeatureMClass]>;
332 def ARMv81mMainline : Architecture<"armv8.1-m.main", "ARMv81mMainline",
333                                                       [HasV8_1MMainlineOps,
334                                                        FeatureNoARM,
335                                                        ModeThumb,
336                                                        FeatureDB,
337                                                        FeatureHWDivThumb,
338                                                        Feature8MSecExt,
339                                                        FeatureAcquireRelease,
340                                                        FeatureMClass,
341                                                        FeatureRAS,
342                                                        FeatureLOB]>;
344 // Aliases
345 def IWMMXT   : Architecture<"iwmmxt",      "ARMv5te",  [ARMv5te]>;
346 def IWMMXT2  : Architecture<"iwmmxt2",     "ARMv5te",  [ARMv5te]>;
347 def XScale   : Architecture<"xscale",      "ARMv5te",  [ARMv5te]>;
348 def ARMv6j   : Architecture<"armv6j",      "ARMv7a",   [ARMv6]>;
349 def ARMv7k   : Architecture<"armv7k",      "ARMv7a",   [ARMv7a]>;
350 def ARMv7s   : Architecture<"armv7s",      "ARMv7a",   [ARMv7a]>;