xref: /freebsd/contrib/llvm-project/llvm/lib/Target/ARM/ARMProcessors.td (revision 9c77fb6aaa366cbabc80ee1b834bcfe4df135491)
1class ProcNoItin<string Name, list<SubtargetFeature> Features>
2  : Processor<Name, NoItineraries, Features>;
3
4//===----------------------------------------------------------------------===//
5// ARM Processor subtarget features.
6//
7
8def ProcA5      : SubtargetFeature<"a5", "ARMProcFamily", "CortexA5",
9                                   "Cortex-A5 ARM processors", []>;
10def ProcA7      : SubtargetFeature<"a7", "ARMProcFamily", "CortexA7",
11                                   "Cortex-A7 ARM processors", []>;
12def ProcA8      : SubtargetFeature<"a8", "ARMProcFamily", "CortexA8",
13                                   "Cortex-A8 ARM processors", []>;
14def ProcA9      : SubtargetFeature<"a9", "ARMProcFamily", "CortexA9",
15                                   "Cortex-A9 ARM processors", []>;
16def ProcA12     : SubtargetFeature<"a12", "ARMProcFamily", "CortexA12",
17                                   "Cortex-A12 ARM processors", []>;
18def ProcA15     : SubtargetFeature<"a15", "ARMProcFamily", "CortexA15",
19                                   "Cortex-A15 ARM processors", []>;
20def ProcA17     : SubtargetFeature<"a17", "ARMProcFamily", "CortexA17",
21                                   "Cortex-A17 ARM processors", []>;
22def ProcA32     : SubtargetFeature<"a32", "ARMProcFamily", "CortexA32",
23                                   "Cortex-A32 ARM processors", []>;
24def ProcA35     : SubtargetFeature<"a35", "ARMProcFamily", "CortexA35",
25                                   "Cortex-A35 ARM processors", []>;
26def ProcA53     : SubtargetFeature<"a53", "ARMProcFamily", "CortexA53",
27                                   "Cortex-A53 ARM processors", []>;
28def ProcA55     : SubtargetFeature<"a55", "ARMProcFamily", "CortexA55",
29                                   "Cortex-A55 ARM processors", []>;
30def ProcA57     : SubtargetFeature<"a57", "ARMProcFamily", "CortexA57",
31                                   "Cortex-A57 ARM processors", []>;
32def ProcA72     : SubtargetFeature<"a72", "ARMProcFamily", "CortexA72",
33                                   "Cortex-A72 ARM processors", []>;
34def ProcA73     : SubtargetFeature<"a73", "ARMProcFamily", "CortexA73",
35                                   "Cortex-A73 ARM processors", []>;
36def ProcA75     : SubtargetFeature<"a75", "ARMProcFamily", "CortexA75",
37                                   "Cortex-A75 ARM processors", []>;
38def ProcA76     : SubtargetFeature<"a76", "ARMProcFamily", "CortexA76",
39                                   "Cortex-A76 ARM processors", []>;
40def ProcA77     : SubtargetFeature<"a77", "ARMProcFamily", "CortexA77",
41                                   "Cortex-A77 ARM processors", []>;
42def ProcA78     : SubtargetFeature<"cortex-a78", "ARMProcFamily", "CortexA78",
43                                   "Cortex-A78 ARM processors", []>;
44def ProcA78AE   : SubtargetFeature<"cortex-a78ae", "ARMProcFamily", "CortexA78AE",
45                                   "Cortex-A78AE ARM processors", []>;
46def ProcA78C    : SubtargetFeature<"a78c", "ARMProcFamily", "CortexA78C",
47                                   "Cortex-A78C ARM processors", []>;
48def ProcA510    : SubtargetFeature<"cortex-a510", "ARMProcFamily",
49                                   "CortexA510", "Cortex-A510 ARM processors", []>;
50def ProcA710    : SubtargetFeature<"cortex-a710", "ARMProcFamily",
51                                   "CortexA710", "Cortex-A710 ARM processors", []>;
52def ProcX1      : SubtargetFeature<"cortex-x1", "ARMProcFamily", "CortexX1",
53                                   "Cortex-X1 ARM processors", []>;
54def ProcX1C     : SubtargetFeature<"cortex-x1c", "ARMProcFamily", "CortexX1C",
55                                   "Cortex-X1C ARM processors", []>;
56
57def ProcV1      : SubtargetFeature<"neoverse-v1", "ARMProcFamily",
58                                   "NeoverseV1", "Neoverse-V1 ARM processors", []>;
59
60def ProcKrait   : SubtargetFeature<"krait", "ARMProcFamily", "Krait",
61                                   "Qualcomm Krait processors", []>;
62def ProcKryo    : SubtargetFeature<"kryo", "ARMProcFamily", "Kryo",
63                                   "Qualcomm Kryo processors", []>;
64def ProcSwift   : SubtargetFeature<"swift", "ARMProcFamily", "Swift",
65                                   "Swift ARM processors", []>;
66
67def ProcExynos  : SubtargetFeature<"exynos", "ARMProcFamily", "Exynos",
68                                   "Samsung Exynos processors",
69                                   [FeatureZCZeroing,
70                                    FeatureUseWideStrideVFP,
71                                    FeatureSplatVFPToNeon,
72                                    FeatureSlowVGETLNi32,
73                                    FeatureSlowVDUP32,
74                                    FeatureSlowFPBrcc,
75                                    FeatureProfUnpredicate,
76                                    FeatureHWDivThumb,
77                                    FeatureHWDivARM,
78                                    FeatureHasSlowFPVMLx,
79                                    FeatureHasSlowFPVFMx,
80                                    FeatureHasRetAddrStack,
81                                    FeatureFuseLiterals,
82                                    FeatureFuseAES,
83                                    FeatureExpandMLx,
84                                    FeatureCrypto,
85                                    FeatureCRC]>;
86
87def ProcR4      : SubtargetFeature<"r4", "ARMProcFamily", "CortexR4",
88                                   "Cortex-R4 ARM processors", []>;
89def ProcR5      : SubtargetFeature<"r5", "ARMProcFamily", "CortexR5",
90                                   "Cortex-R5 ARM processors", []>;
91def ProcR7      : SubtargetFeature<"r7", "ARMProcFamily", "CortexR7",
92                                   "Cortex-R7 ARM processors", []>;
93def ProcR52     : SubtargetFeature<"r52", "ARMProcFamily", "CortexR52",
94                                   "Cortex-R52 ARM processors", []>;
95def ProcR52plus  : SubtargetFeature<"r52plus", "ARMProcFamily", "CortexR52plus",
96                                   "Cortex-R52plus ARM processors", []>;
97
98def ProcM3      : SubtargetFeature<"m3", "ARMProcFamily", "CortexM3",
99                                   "Cortex-M3 ARM processors", []>;
100def ProcM55      : SubtargetFeature<"m55", "ARMProcFamily", "CortexM55",
101                                   "Cortex-M55 ARM processors", []>;
102def ProcM7      : SubtargetFeature<"m7", "ARMProcFamily", "CortexM7",
103                                   "Cortex-M7 ARM processors", []>;
104def ProcM85      : SubtargetFeature<"m85", "ARMProcFamily", "CortexM85",
105                                   "Cortex-M85 ARM processors", []>;
106
107//===----------------------------------------------------------------------===//
108// ARM processors
109//
110// Dummy CPU, used to target architectures
111def : ProcessorModel<"generic",     CortexA8Model,      []>;
112
113// FIXME: Several processors below are not using their own scheduler
114// model, but one of similar/previous processor. These should be fixed.
115
116def : ProcNoItin<"arm8",                                [ARMv4]>;
117def : ProcNoItin<"arm810",                              [ARMv4]>;
118def : ProcNoItin<"strongarm",                           [ARMv4]>;
119def : ProcNoItin<"strongarm110",                        [ARMv4]>;
120def : ProcNoItin<"strongarm1100",                       [ARMv4]>;
121def : ProcNoItin<"strongarm1110",                       [ARMv4]>;
122
123def : ProcNoItin<"arm7tdmi",                            [ARMv4t]>;
124def : ProcNoItin<"arm7tdmi-s",                          [ARMv4t]>;
125def : ProcNoItin<"arm710t",                             [ARMv4t]>;
126def : ProcNoItin<"arm720t",                             [ARMv4t]>;
127def : ProcNoItin<"arm9",                                [ARMv4t]>;
128def : ProcNoItin<"arm9tdmi",                            [ARMv4t]>;
129def : ProcNoItin<"arm920",                              [ARMv4t]>;
130def : ProcNoItin<"arm920t",                             [ARMv4t]>;
131def : ProcNoItin<"arm922t",                             [ARMv4t]>;
132def : ProcNoItin<"arm940t",                             [ARMv4t]>;
133def : ProcNoItin<"ep9312",                              [ARMv4t]>;
134
135def : ProcNoItin<"arm10tdmi",                           [ARMv5t]>;
136def : ProcNoItin<"arm1020t",                            [ARMv5t]>;
137
138def : ProcNoItin<"arm9e",                               [ARMv5te]>;
139def : ProcNoItin<"arm926ej-s",                          [ARMv5te]>;
140def : ProcNoItin<"arm946e-s",                           [ARMv5te]>;
141def : ProcNoItin<"arm966e-s",                           [ARMv5te]>;
142def : ProcNoItin<"arm968e-s",                           [ARMv5te]>;
143def : ProcNoItin<"arm10e",                              [ARMv5te]>;
144def : ProcNoItin<"arm1020e",                            [ARMv5te]>;
145def : ProcNoItin<"arm1022e",                            [ARMv5te]>;
146def : ProcNoItin<"xscale",                              [ARMv5te]>;
147def : ProcNoItin<"iwmmxt",                              [ARMv5te]>;
148
149def : Processor<"arm1136j-s",       ARMV6Itineraries,   [ARMv6]>;
150def : Processor<"arm1136jf-s",      ARMV6Itineraries,   [ARMv6,
151                                                         FeatureVFP2,
152                                                         FeatureHasSlowFPVMLx]>;
153
154def : Processor<"cortex-m0",        ARMV6Itineraries,   [ARMv6m,
155                                                         FeatureHasNoBranchPredictor]>;
156def : Processor<"cortex-m0plus",    ARMV6Itineraries,   [ARMv6m,
157                                                         FeatureHasNoBranchPredictor]>;
158def : Processor<"cortex-m1",        ARMV6Itineraries,   [ARMv6m,
159                                                         FeatureHasNoBranchPredictor]>;
160def : Processor<"sc000",            ARMV6Itineraries,   [ARMv6m,
161                                                         FeatureHasNoBranchPredictor]>;
162
163def : Processor<"arm1176jz-s",      ARMV6Itineraries,   [ARMv6kz]>;
164def : Processor<"arm1176jzf-s",     ARMV6Itineraries,   [ARMv6kz,
165                                                         FeatureVFP2,
166                                                         FeatureHasSlowFPVMLx]>;
167
168def : Processor<"mpcorenovfp",      ARMV6Itineraries,   [ARMv6k]>;
169def : Processor<"mpcore",           ARMV6Itineraries,   [ARMv6k,
170                                                         FeatureVFP2,
171                                                         FeatureHasSlowFPVMLx]>;
172
173def : Processor<"arm1156t2-s",      ARMV6Itineraries,   [ARMv6t2]>;
174def : Processor<"arm1156t2f-s",     ARMV6Itineraries,   [ARMv6t2,
175                                                         FeatureVFP2,
176                                                         FeatureHasSlowFPVMLx]>;
177
178def : ProcessorModel<"cortex-a5",   CortexA8Model,      [ARMv7a, ProcA5,
179                                                         FeatureHasRetAddrStack,
180                                                         FeatureTrustZone,
181                                                         FeatureSlowFPBrcc,
182                                                         FeatureHasSlowFPVMLx,
183                                                         FeatureHasSlowFPVFMx,
184                                                         FeatureVMLxForwarding,
185                                                         FeatureMP,
186                                                         FeatureVFP4]>;
187
188def : ProcessorModel<"cortex-a7",   CortexA8Model,      [ARMv7a, ProcA7,
189                                                         FeatureHasRetAddrStack,
190                                                         FeatureTrustZone,
191                                                         FeatureSlowFPBrcc,
192                                                         FeatureHasVMLxHazards,
193                                                         FeatureHasSlowFPVMLx,
194                                                         FeatureHasSlowFPVFMx,
195                                                         FeatureVMLxForwarding,
196                                                         FeatureMP,
197                                                         FeatureVFP4,
198                                                         FeatureVirtualization]>;
199
200def : ProcessorModel<"cortex-a8",   CortexA8Model,      [ARMv7a, ProcA8,
201                                                         FeatureHasRetAddrStack,
202                                                         FeatureNonpipelinedVFP,
203                                                         FeatureTrustZone,
204                                                         FeatureSlowFPBrcc,
205                                                         FeatureHasVMLxHazards,
206                                                         FeatureHasSlowFPVMLx,
207                                                         FeatureHasSlowFPVFMx,
208                                                         FeatureVMLxForwarding]>;
209
210def : ProcessorModel<"cortex-a9",   CortexA9Model,      [ARMv7a, ProcA9,
211                                                         FeatureHasRetAddrStack,
212                                                         FeatureTrustZone,
213                                                         FeatureHasVMLxHazards,
214                                                         FeatureVMLxForwarding,
215                                                         FeatureFP16,
216                                                         FeatureAvoidPartialCPSR,
217                                                         FeatureExpandMLx,
218                                                         FeaturePreferVMOVSR,
219                                                         FeatureMuxedUnits,
220                                                         FeatureNEONForFPMovs,
221                                                         FeatureCheckVLDnAlign,
222                                                         FeatureMP]>;
223
224def : ProcessorModel<"cortex-a12",  CortexA9Model,      [ARMv7a, ProcA12,
225                                                         FeatureHasRetAddrStack,
226                                                         FeatureTrustZone,
227                                                         FeatureVMLxForwarding,
228                                                         FeatureVFP4,
229                                                         FeatureAvoidPartialCPSR,
230                                                         FeatureVirtualization,
231                                                         FeatureMP]>;
232
233def : ProcessorModel<"cortex-a15",  CortexA9Model,      [ARMv7a, ProcA15,
234                                                         FeatureDontWidenVMOVS,
235                                                         FeatureSplatVFPToNeon,
236                                                         FeatureHasRetAddrStack,
237                                                         FeatureMuxedUnits,
238                                                         FeatureTrustZone,
239                                                         FeatureVFP4,
240                                                         FeatureMP,
241                                                         FeatureCheckVLDnAlign,
242                                                         FeatureAvoidPartialCPSR,
243                                                         FeatureVirtualization]>;
244
245def : ProcessorModel<"cortex-a17",  CortexA9Model,      [ARMv7a, ProcA17,
246                                                         FeatureHasRetAddrStack,
247                                                         FeatureTrustZone,
248                                                         FeatureMP,
249                                                         FeatureVMLxForwarding,
250                                                         FeatureVFP4,
251                                                         FeatureAvoidPartialCPSR,
252                                                         FeatureVirtualization]>;
253
254// FIXME: krait has currently the same features as A9 plus VFP4 and  HWDiv
255def : ProcessorModel<"krait",       CortexA9Model,      [ARMv7a, ProcKrait,
256                                                         FeatureHasRetAddrStack,
257                                                         FeatureMuxedUnits,
258                                                         FeatureCheckVLDnAlign,
259                                                         FeatureVMLxForwarding,
260                                                         FeatureFP16,
261                                                         FeatureAvoidPartialCPSR,
262                                                         FeatureVFP4,
263                                                         FeatureHWDivThumb,
264                                                         FeatureHWDivARM]>;
265
266def : ProcessorModel<"swift",       SwiftModel,         [ARMv7a, ProcSwift,
267                                                         FeatureHasRetAddrStack,
268                                                         FeatureNEONForFP,
269                                                         FeatureVFP4,
270                                                         FeatureUseWideStrideVFP,
271                                                         FeatureMP,
272                                                         FeatureHWDivThumb,
273                                                         FeatureHWDivARM,
274                                                         FeatureAvoidPartialCPSR,
275                                                         FeatureAvoidMOVsShOp,
276                                                         FeatureHasSlowFPVMLx,
277                                                         FeatureHasSlowFPVFMx,
278                                                         FeatureHasVMLxHazards,
279                                                         FeatureProfUnpredicate,
280                                                         FeaturePrefISHSTBarrier,
281                                                         FeatureSlowOddRegister,
282                                                         FeatureSlowLoadDSubreg,
283                                                         FeatureSlowVGETLNi32,
284                                                         FeatureSlowVDUP32,
285                                                         FeatureUseMISched,
286                                                         FeatureNoPostRASched]>;
287
288def : ProcessorModel<"cortex-r4",   CortexA8Model,      [ARMv7r, ProcR4,
289                                                         FeatureHasRetAddrStack,
290                                                         FeatureAvoidPartialCPSR]>;
291
292def : ProcessorModel<"cortex-r4f",  CortexA8Model,      [ARMv7r, ProcR4,
293                                                         FeatureHasRetAddrStack,
294                                                         FeatureSlowFPBrcc,
295                                                         FeatureHasSlowFPVMLx,
296                                                         FeatureHasSlowFPVFMx,
297                                                         FeatureVFP3_D16,
298                                                         FeatureAvoidPartialCPSR]>;
299
300def : ProcessorModel<"cortex-r5",   CortexA8Model,      [ARMv7r, ProcR5,
301                                                         FeatureHasRetAddrStack,
302                                                         FeatureVFP3_D16,
303                                                         FeatureSlowFPBrcc,
304                                                         FeatureHWDivARM,
305                                                         FeatureHasSlowFPVMLx,
306                                                         FeatureHasSlowFPVFMx,
307                                                         FeatureAvoidPartialCPSR]>;
308
309def : ProcessorModel<"cortex-r7",   CortexA8Model,      [ARMv7r, ProcR7,
310                                                         FeatureHasRetAddrStack,
311                                                         FeatureVFP3_D16,
312                                                         FeatureFP16,
313                                                         FeatureMP,
314                                                         FeatureSlowFPBrcc,
315                                                         FeatureHWDivARM,
316                                                         FeatureHasSlowFPVMLx,
317                                                         FeatureHasSlowFPVFMx,
318                                                         FeatureAvoidPartialCPSR]>;
319
320def : ProcessorModel<"cortex-r8",   CortexA8Model,      [ARMv7r,
321                                                         FeatureHasRetAddrStack,
322                                                         FeatureVFP3_D16,
323                                                         FeatureFP16,
324                                                         FeatureMP,
325                                                         FeatureSlowFPBrcc,
326                                                         FeatureHWDivARM,
327                                                         FeatureHasSlowFPVMLx,
328                                                         FeatureHasSlowFPVFMx,
329                                                         FeatureAvoidPartialCPSR]>;
330
331def : ProcessorModel<"cortex-m3",   CortexM4Model,      [ARMv7m,
332                                                         ProcM3,
333                                                         FeaturePreferBranchAlign32,
334                                                         FeatureUseMISched,
335                                                         FeatureHasNoBranchPredictor]>;
336
337def : ProcessorModel<"sc300",       CortexM4Model,      [ARMv7m,
338                                                         ProcM3,
339                                                         FeatureUseMISched,
340                                                         FeatureHasNoBranchPredictor]>;
341
342def : ProcessorModel<"cortex-m4", CortexM4Model,        [ARMv7em,
343                                                         FeatureVFP4_D16_SP,
344                                                         FeaturePreferBranchAlign32,
345                                                         FeatureHasSlowFPVMLx,
346                                                         FeatureHasSlowFPVFMx,
347                                                         FeatureUseMISched,
348                                                         FeatureHasNoBranchPredictor]>;
349
350def : ProcessorModel<"cortex-m7", CortexM7Model,        [ARMv7em,
351                                                         ProcM7,
352                                                         FeatureFPARMv8_D16,
353                                                         FeaturePreferBranchAlign64,
354                                                         FeatureUseMIPipeliner,
355                                                         FeatureUseMISched]>;
356
357def : ProcNoItin<"cortex-m23",                          [ARMv8mBaseline,
358                                                         FeatureNoMovt,
359                                                         FeatureHasNoBranchPredictor]>;
360
361def : ProcessorModel<"cortex-m33", CortexM4Model,       [ARMv8mMainline,
362                                                         FeatureDSP,
363                                                         FeatureFPARMv8_D16_SP,
364                                                         FeaturePreferBranchAlign32,
365                                                         FeatureHasSlowFPVMLx,
366                                                         FeatureHasSlowFPVFMx,
367                                                         FeatureUseMISched,
368                                                         FeatureHasNoBranchPredictor,
369                                                         FeatureAvoidMULS,
370                                                         FeatureFixCMSE_CVE_2021_35465]>;
371
372def : ProcessorModel<"star-mc1", CortexM4Model,         [ARMv8mMainline,
373                                                         FeatureDSP,
374                                                         FeatureFPARMv8_D16_SP,
375                                                         FeaturePreferBranchAlign32,
376                                                         FeatureHasSlowFPVMLx,
377                                                         FeatureHasSlowFPVFMx,
378                                                         FeatureUseMISched,
379                                                         FeatureHasNoBranchPredictor,
380                                                         FeatureAvoidMULS,
381                                                         FeatureFixCMSE_CVE_2021_35465]>;
382
383def : ProcessorModel<"cortex-m35p", CortexM4Model,      [ARMv8mMainline,
384                                                         FeatureDSP,
385                                                         FeatureFPARMv8_D16_SP,
386                                                         FeaturePreferBranchAlign32,
387                                                         FeatureHasSlowFPVMLx,
388                                                         FeatureHasSlowFPVFMx,
389                                                         FeatureUseMISched,
390                                                         FeatureHasNoBranchPredictor,
391                                                         FeatureFixCMSE_CVE_2021_35465]>;
392
393def : ProcessorModel<"cortex-m55", CortexM55Model,      [ARMv81mMainline,
394                                                         ProcM55,
395                                                         FeatureDSP,
396                                                         FeatureFPARMv8_D16,
397                                                         FeatureUseMISched,
398                                                         FeatureHasNoBranchPredictor,
399                                                         FeaturePreferBranchAlign32,
400                                                         FeatureHasSlowFPVMLx,
401                                                         HasMVEFloatOps,
402                                                         FeatureFixCMSE_CVE_2021_35465]>;
403
404def : ProcessorModel<"cortex-m85", CortexM85Model,      [ARMv81mMainline,
405                                                         ProcM85,
406                                                         FeatureDSP,
407                                                         FeatureFPARMv8_D16,
408                                                         FeaturePACBTI,
409                                                         FeaturePreferBranchAlign64,
410                                                         FeatureUseMISched,
411                                                         HasMVEFloatOps]>;
412
413def : ProcessorModel<"cortex-m52", CortexM55Model,      [ARMv81mMainline,
414                                                         FeatureDSP,
415                                                         FeatureFPARMv8_D16,
416                                                         FeatureHasNoBranchPredictor,
417                                                         FeaturePACBTI,
418                                                         FeatureUseMISched,
419                                                         FeaturePreferBranchAlign32,
420                                                         FeatureHasSlowFPVMLx,
421                                                         FeatureMVEVectorCostFactor1,
422                                                         HasMVEFloatOps]>;
423
424def : ProcNoItin<"cortex-a32",                           [ARMv8a,
425                                                         FeatureHWDivThumb,
426                                                         FeatureHWDivARM,
427                                                         FeatureCrypto,
428                                                         FeatureCRC]>;
429
430def : ProcNoItin<"cortex-a35",                          [ARMv8a, ProcA35,
431                                                         FeatureHWDivThumb,
432                                                         FeatureHWDivARM,
433                                                         FeatureCrypto,
434                                                         FeatureCRC]>;
435
436def : ProcNoItin<"cortex-a53",                          [ARMv8a, ProcA53,
437                                                         FeatureHWDivThumb,
438                                                         FeatureHWDivARM,
439                                                         FeatureCrypto,
440                                                         FeatureCRC,
441                                                         FeatureFPAO]>;
442
443def : ProcNoItin<"cortex-a55",                          [ARMv82a, ProcA55,
444                                                         FeatureHWDivThumb,
445                                                         FeatureHWDivARM,
446                                                         FeatureDotProd]>;
447
448def : ProcessorModel<"cortex-a57",  CortexA57Model,     [ARMv8a, ProcA57,
449                                                         FeatureHWDivThumb,
450                                                         FeatureHWDivARM,
451                                                         FeatureCrypto,
452                                                         FeatureCRC,
453                                                         FeatureFPAO,
454                                                         FeatureAvoidPartialCPSR,
455                                                         FeatureCheapPredicableCPSR,
456                                                         FeatureFixCortexA57AES1742098]>;
457
458def : ProcessorModel<"cortex-a72",  CortexA57Model,     [ARMv8a, ProcA72,
459                                                         FeatureHWDivThumb,
460                                                         FeatureHWDivARM,
461                                                         FeatureCrypto,
462                                                         FeatureCRC,
463                                                         FeatureFixCortexA57AES1742098]>;
464
465def : ProcNoItin<"cortex-a73",                          [ARMv8a, ProcA73,
466                                                         FeatureHWDivThumb,
467                                                         FeatureHWDivARM,
468                                                         FeatureCrypto,
469                                                         FeatureCRC]>;
470
471def : ProcNoItin<"cortex-a75",                          [ARMv82a, ProcA75,
472                                                         FeatureHWDivThumb,
473                                                         FeatureHWDivARM,
474                                                         FeatureDotProd]>;
475
476def : ProcNoItin<"cortex-a76",                          [ARMv82a, ProcA76,
477                                                         FeatureHWDivThumb,
478                                                         FeatureHWDivARM,
479                                                         FeatureCrypto,
480                                                         FeatureCRC,
481                                                         FeatureFullFP16,
482                                                         FeatureDotProd]>;
483
484def : ProcNoItin<"cortex-a76ae",                        [ARMv82a, ProcA76,
485                                                         FeatureHWDivThumb,
486                                                         FeatureHWDivARM,
487                                                         FeatureCrypto,
488                                                         FeatureCRC,
489                                                         FeatureFullFP16,
490                                                         FeatureDotProd]>;
491
492def : ProcNoItin<"cortex-a77",                          [ARMv82a, ProcA77,
493                                                         FeatureHWDivThumb,
494                                                         FeatureHWDivARM,
495                                                         FeatureCrypto,
496                                                         FeatureCRC,
497                                                         FeatureFullFP16,
498                                                         FeatureDotProd]>;
499
500def : ProcNoItin<"cortex-a78",                          [ARMv82a, ProcA78,
501                                                         FeatureHWDivThumb,
502                                                         FeatureHWDivARM,
503                                                         FeatureCrypto,
504                                                         FeatureCRC,
505                                                         FeatureFullFP16,
506                                                         FeatureDotProd]>;
507
508def : ProcNoItin<"cortex-a78ae",                        [ARMv82a, ProcA78AE,
509                                                         FeatureHWDivThumb,
510                                                         FeatureHWDivARM,
511                                                         FeatureCrypto,
512                                                         FeatureCRC,
513                                                         FeatureFullFP16,
514                                                         FeatureDotProd]>;
515
516def : ProcNoItin<"cortex-a78c",                         [ARMv82a, ProcA78C,
517                                                         FeatureHWDivThumb,
518                                                         FeatureHWDivARM,
519                                                         FeatureCrypto,
520                                                         FeatureCRC,
521                                                         FeatureDotProd,
522                                                         FeatureFullFP16]>;
523
524def : ProcNoItin<"cortex-a510",                         [ARMv9a, ProcA710,
525                                                         FeatureHWDivThumb,
526                                                         FeatureHWDivARM,
527                                                         FeatureFP16FML,
528                                                         FeatureBF16,
529                                                         FeatureMatMulInt8,
530                                                         FeatureSB]>;
531
532def : ProcNoItin<"cortex-a710",                         [ARMv9a, ProcA710,
533                                                         FeatureHWDivThumb,
534                                                         FeatureHWDivARM,
535                                                         FeatureFP16FML,
536                                                         FeatureBF16,
537                                                         FeatureMatMulInt8,
538                                                         FeatureSB]>;
539
540def : ProcNoItin<"cortex-x1",                           [ARMv82a, ProcX1,
541                                                         FeatureHWDivThumb,
542                                                         FeatureHWDivARM,
543                                                         FeatureCrypto,
544                                                         FeatureCRC,
545                                                         FeatureFullFP16,
546                                                         FeatureDotProd]>;
547
548def : ProcNoItin<"cortex-x1c",                          [ARMv82a, ProcX1C,
549                                                         FeatureHWDivThumb,
550                                                         FeatureHWDivARM,
551                                                         FeatureCrypto,
552                                                         FeatureCRC,
553                                                         FeatureFullFP16,
554                                                         FeatureDotProd]>;
555
556def : ProcNoItin<"neoverse-v1",                         [ARMv84a,
557                                                         FeatureHWDivThumb,
558                                                         FeatureHWDivARM,
559                                                         FeatureCrypto,
560                                                         FeatureCRC,
561                                                         FeatureFullFP16,
562                                                         FeatureBF16,
563                                                         FeatureMatMulInt8]>;
564
565def : ProcNoItin<"neoverse-n1",                         [ARMv82a,
566                                                         FeatureHWDivThumb,
567                                                         FeatureHWDivARM,
568                                                         FeatureCrypto,
569                                                         FeatureCRC,
570                                                         FeatureDotProd]>;
571
572def : ProcNoItin<"neoverse-n2",                         [ARMv9a,
573                                                         FeatureBF16,
574                                                         FeatureFP16FML,
575                                                         FeatureMatMulInt8]>;
576
577def : ProcessorModel<"cyclone",     SwiftModel,         [ARMv8a, ProcSwift,
578                                                         FeatureHasRetAddrStack,
579                                                         FeatureNEONForFP,
580                                                         FeatureVFP4,
581                                                         FeatureMP,
582                                                         FeatureHWDivThumb,
583                                                         FeatureHWDivARM,
584                                                         FeatureAvoidPartialCPSR,
585                                                         FeatureAvoidMOVsShOp,
586                                                         FeatureHasSlowFPVMLx,
587                                                         FeatureHasSlowFPVFMx,
588                                                         FeatureCrypto,
589                                                         FeatureUseMISched,
590                                                         FeatureZCZeroing,
591                                                         FeatureNoPostRASched]>;
592
593def : ProcNoItin<"exynos-m3",                           [ARMv8a, ProcExynos]>;
594def : ProcNoItin<"exynos-m4",                           [ARMv82a, ProcExynos,
595                                                         FeatureFullFP16,
596                                                         FeatureDotProd]>;
597def : ProcNoItin<"exynos-m5",                           [ARMv82a, ProcExynos,
598                                                         FeatureFullFP16,
599                                                         FeatureDotProd]>;
600
601def : ProcNoItin<"kryo",                                [ARMv8a, ProcKryo,
602                                                         FeatureHWDivThumb,
603                                                         FeatureHWDivARM,
604                                                         FeatureCrypto,
605                                                         FeatureCRC]>;
606
607def : ProcessorModel<"cortex-r52", CortexR52Model,      [ARMv8r, ProcR52,
608                                                         FeatureFPARMv8,
609                                                         FeatureNEON,
610                                                         FeatureUseMISched,
611                                                         FeatureFPAO]>;
612
613def : ProcessorModel<"cortex-r52plus", CortexR52Model,  [ARMv8r, ProcR52plus,
614                                                         FeatureFPARMv8,
615                                                         FeatureNEON,
616                                                         FeatureUseMISched,
617                                                         FeatureFPAO]>;
618