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 FeatureFixCMSE_CVE_2021_35465]>; 381 382def : 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]>; 391 392def : 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]>; 402 403def : ProcessorModel<"cortex-m85", CortexM85Model, [ARMv81mMainline, 404 ProcM85, 405 FeatureDSP, 406 FeatureFPARMv8_D16, 407 FeaturePACBTI, 408 FeaturePreferBranchAlign64, 409 FeatureUseMISched, 410 HasMVEFloatOps]>; 411 412def : ProcessorModel<"cortex-m52", CortexM55Model, [ARMv81mMainline, 413 FeatureDSP, 414 FeatureFPARMv8_D16, 415 FeatureHasNoBranchPredictor, 416 FeaturePACBTI, 417 FeatureUseMISched, 418 FeaturePreferBranchAlign32, 419 FeatureHasSlowFPVMLx, 420 FeatureMVEVectorCostFactor1, 421 HasMVEFloatOps]>; 422 423def : ProcNoItin<"cortex-a32", [ARMv8a, 424 FeatureHWDivThumb, 425 FeatureHWDivARM, 426 FeatureCrypto, 427 FeatureCRC]>; 428 429def : ProcNoItin<"cortex-a35", [ARMv8a, ProcA35, 430 FeatureHWDivThumb, 431 FeatureHWDivARM, 432 FeatureCrypto, 433 FeatureCRC]>; 434 435def : ProcNoItin<"cortex-a53", [ARMv8a, ProcA53, 436 FeatureHWDivThumb, 437 FeatureHWDivARM, 438 FeatureCrypto, 439 FeatureCRC, 440 FeatureFPAO]>; 441 442def : ProcNoItin<"cortex-a55", [ARMv82a, ProcA55, 443 FeatureHWDivThumb, 444 FeatureHWDivARM, 445 FeatureDotProd]>; 446 447def : ProcessorModel<"cortex-a57", CortexA57Model, [ARMv8a, ProcA57, 448 FeatureHWDivThumb, 449 FeatureHWDivARM, 450 FeatureCrypto, 451 FeatureCRC, 452 FeatureFPAO, 453 FeatureAvoidPartialCPSR, 454 FeatureCheapPredicableCPSR, 455 FeatureFixCortexA57AES1742098]>; 456 457def : ProcessorModel<"cortex-a72", CortexA57Model, [ARMv8a, ProcA72, 458 FeatureHWDivThumb, 459 FeatureHWDivARM, 460 FeatureCrypto, 461 FeatureCRC, 462 FeatureFixCortexA57AES1742098]>; 463 464def : ProcNoItin<"cortex-a73", [ARMv8a, ProcA73, 465 FeatureHWDivThumb, 466 FeatureHWDivARM, 467 FeatureCrypto, 468 FeatureCRC]>; 469 470def : ProcNoItin<"cortex-a75", [ARMv82a, ProcA75, 471 FeatureHWDivThumb, 472 FeatureHWDivARM, 473 FeatureDotProd]>; 474 475def : ProcNoItin<"cortex-a76", [ARMv82a, ProcA76, 476 FeatureHWDivThumb, 477 FeatureHWDivARM, 478 FeatureCrypto, 479 FeatureCRC, 480 FeatureFullFP16, 481 FeatureDotProd]>; 482 483def : ProcNoItin<"cortex-a76ae", [ARMv82a, ProcA76, 484 FeatureHWDivThumb, 485 FeatureHWDivARM, 486 FeatureCrypto, 487 FeatureCRC, 488 FeatureFullFP16, 489 FeatureDotProd]>; 490 491def : ProcNoItin<"cortex-a77", [ARMv82a, ProcA77, 492 FeatureHWDivThumb, 493 FeatureHWDivARM, 494 FeatureCrypto, 495 FeatureCRC, 496 FeatureFullFP16, 497 FeatureDotProd]>; 498 499def : ProcNoItin<"cortex-a78", [ARMv82a, ProcA78, 500 FeatureHWDivThumb, 501 FeatureHWDivARM, 502 FeatureCrypto, 503 FeatureCRC, 504 FeatureFullFP16, 505 FeatureDotProd]>; 506 507def : ProcNoItin<"cortex-a78ae", [ARMv82a, ProcA78AE, 508 FeatureHWDivThumb, 509 FeatureHWDivARM, 510 FeatureCrypto, 511 FeatureCRC, 512 FeatureFullFP16, 513 FeatureDotProd]>; 514 515def : ProcNoItin<"cortex-a78c", [ARMv82a, ProcA78C, 516 FeatureHWDivThumb, 517 FeatureHWDivARM, 518 FeatureCrypto, 519 FeatureCRC, 520 FeatureDotProd, 521 FeatureFullFP16]>; 522 523def : ProcNoItin<"cortex-a510", [ARMv9a, ProcA710, 524 FeatureHWDivThumb, 525 FeatureHWDivARM, 526 FeatureFP16FML, 527 FeatureBF16, 528 FeatureMatMulInt8, 529 FeatureSB]>; 530 531def : ProcNoItin<"cortex-a710", [ARMv9a, ProcA710, 532 FeatureHWDivThumb, 533 FeatureHWDivARM, 534 FeatureFP16FML, 535 FeatureBF16, 536 FeatureMatMulInt8, 537 FeatureSB]>; 538 539def : ProcNoItin<"cortex-x1", [ARMv82a, ProcX1, 540 FeatureHWDivThumb, 541 FeatureHWDivARM, 542 FeatureCrypto, 543 FeatureCRC, 544 FeatureFullFP16, 545 FeatureDotProd]>; 546 547def : ProcNoItin<"cortex-x1c", [ARMv82a, ProcX1C, 548 FeatureHWDivThumb, 549 FeatureHWDivARM, 550 FeatureCrypto, 551 FeatureCRC, 552 FeatureFullFP16, 553 FeatureDotProd]>; 554 555def : ProcNoItin<"neoverse-v1", [ARMv84a, 556 FeatureHWDivThumb, 557 FeatureHWDivARM, 558 FeatureCrypto, 559 FeatureCRC, 560 FeatureFullFP16, 561 FeatureBF16, 562 FeatureMatMulInt8]>; 563 564def : ProcNoItin<"neoverse-n1", [ARMv82a, 565 FeatureHWDivThumb, 566 FeatureHWDivARM, 567 FeatureCrypto, 568 FeatureCRC, 569 FeatureDotProd]>; 570 571def : ProcNoItin<"neoverse-n2", [ARMv9a, 572 FeatureBF16, 573 FeatureFP16FML, 574 FeatureMatMulInt8]>; 575 576def : 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]>; 591 592def : ProcNoItin<"exynos-m3", [ARMv8a, ProcExynos]>; 593def : ProcNoItin<"exynos-m4", [ARMv82a, ProcExynos, 594 FeatureFullFP16, 595 FeatureDotProd]>; 596def : ProcNoItin<"exynos-m5", [ARMv82a, ProcExynos, 597 FeatureFullFP16, 598 FeatureDotProd]>; 599 600def : ProcNoItin<"kryo", [ARMv8a, ProcKryo, 601 FeatureHWDivThumb, 602 FeatureHWDivARM, 603 FeatureCrypto, 604 FeatureCRC]>; 605 606def : ProcessorModel<"cortex-r52", CortexR52Model, [ARMv8r, ProcR52, 607 FeatureFPARMv8, 608 FeatureNEON, 609 FeatureUseMISched, 610 FeatureFPAO]>; 611 612def : ProcessorModel<"cortex-r52plus", CortexR52Model, [ARMv8r, ProcR52plus, 613 FeatureFPARMv8, 614 FeatureNEON, 615 FeatureUseMISched, 616 FeatureFPAO]>; 617