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