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