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