1//=- AArch64Processors.td - Describe AArch64 Processors ------*- tablegen -*-=// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8// 9// 10//===----------------------------------------------------------------------===// 11 12//===----------------------------------------------------------------------===// 13// AArch64 Processor subtarget features. 14//===----------------------------------------------------------------------===// 15 16 17def TuneA35 : SubtargetFeature<"a35", "ARMProcFamily", "CortexA35", 18 "Cortex-A35 ARM processors">; 19 20def TuneA53 : SubtargetFeature<"a53", "ARMProcFamily", "CortexA53", 21 "Cortex-A53 ARM processors", [ 22 FeatureFuseAES, 23 FeatureFuseAdrpAdd, 24 FeatureBalanceFPOps, 25 FeaturePostRAScheduler]>; 26 27def TuneA55 : SubtargetFeature<"a55", "ARMProcFamily", "CortexA55", 28 "Cortex-A55 ARM processors", [ 29 FeatureFuseAES, 30 FeatureFuseAdrpAdd, 31 FeaturePostRAScheduler, 32 FeatureFuseAddress]>; 33 34def TuneA510 : SubtargetFeature<"a510", "ARMProcFamily", "CortexA510", 35 "Cortex-A510 ARM processors", [ 36 FeatureFuseAES, 37 FeatureFuseAdrpAdd, 38 FeaturePostRAScheduler 39 ]>; 40 41def TuneA520 : SubtargetFeature<"a520", "ARMProcFamily", "CortexA520", 42 "Cortex-A520 ARM processors", [ 43 FeatureFuseAES, 44 FeatureFuseAdrpAdd, 45 FeaturePostRAScheduler]>; 46 47def TuneA520AE : SubtargetFeature<"a520ae", "ARMProcFamily", "CortexA520", 48 "Cortex-A520AE ARM processors", [ 49 FeatureFuseAES, 50 FeatureFuseAdrpAdd, 51 FeaturePostRAScheduler]>; 52 53def TuneA57 : SubtargetFeature<"a57", "ARMProcFamily", "CortexA57", 54 "Cortex-A57 ARM processors", [ 55 FeatureFuseAES, 56 FeatureBalanceFPOps, 57 FeatureFuseAdrpAdd, 58 FeatureFuseLiterals, 59 FeatureAddrLSLSlow14, 60 FeaturePostRAScheduler, 61 FeatureEnableSelectOptimize, 62 FeaturePredictableSelectIsExpensive]>; 63 64def TuneA65 : SubtargetFeature<"a65", "ARMProcFamily", "CortexA65", 65 "Cortex-A65 ARM processors", [ 66 FeatureFuseAES, 67 FeatureFuseAddress, 68 FeatureFuseAdrpAdd, 69 FeatureFuseLiterals, 70 FeatureEnableSelectOptimize, 71 FeaturePredictableSelectIsExpensive]>; 72 73def TuneA72 : SubtargetFeature<"a72", "ARMProcFamily", "CortexA72", 74 "Cortex-A72 ARM processors", [ 75 FeatureFuseAES, 76 FeatureFuseAdrpAdd, 77 FeatureFuseLiterals, 78 FeatureAddrLSLSlow14, 79 FeatureEnableSelectOptimize, 80 FeaturePredictableSelectIsExpensive]>; 81 82def TuneA73 : SubtargetFeature<"a73", "ARMProcFamily", "CortexA73", 83 "Cortex-A73 ARM processors", [ 84 FeatureFuseAES, 85 FeatureFuseAdrpAdd, 86 FeatureAddrLSLSlow14, 87 FeatureEnableSelectOptimize, 88 FeaturePredictableSelectIsExpensive]>; 89 90def TuneA75 : SubtargetFeature<"a75", "ARMProcFamily", "CortexA75", 91 "Cortex-A75 ARM processors", [ 92 FeatureFuseAES, 93 FeatureFuseAdrpAdd, 94 FeatureAddrLSLSlow14, 95 FeatureEnableSelectOptimize, 96 FeaturePredictableSelectIsExpensive]>; 97 98def TuneA76 : SubtargetFeature<"a76", "ARMProcFamily", "CortexA76", 99 "Cortex-A76 ARM processors", [ 100 FeatureFuseAES, 101 FeatureFuseAdrpAdd, 102 FeatureAddrLSLSlow14, 103 FeatureALULSLFast, 104 FeatureEnableSelectOptimize, 105 FeaturePredictableSelectIsExpensive]>; 106 107def TuneA77 : SubtargetFeature<"a77", "ARMProcFamily", "CortexA77", 108 "Cortex-A77 ARM processors", [ 109 FeatureCmpBccFusion, 110 FeatureFuseAES, 111 FeatureFuseAdrpAdd, 112 FeatureAddrLSLSlow14, 113 FeatureALULSLFast, 114 FeatureEnableSelectOptimize, 115 FeaturePredictableSelectIsExpensive]>; 116 117def TuneA78 : SubtargetFeature<"a78", "ARMProcFamily", "CortexA78", 118 "Cortex-A78 ARM processors", [ 119 FeatureCmpBccFusion, 120 FeatureFuseAES, 121 FeatureFuseAdrpAdd, 122 FeatureAddrLSLSlow14, 123 FeatureALULSLFast, 124 FeaturePostRAScheduler, 125 FeatureEnableSelectOptimize, 126 FeaturePredictableSelectIsExpensive]>; 127 128def TuneA78AE : SubtargetFeature<"a78ae", "ARMProcFamily", 129 "CortexA78AE", 130 "Cortex-A78AE ARM processors", [ 131 FeatureCmpBccFusion, 132 FeatureFuseAES, 133 FeatureFuseAdrpAdd, 134 FeatureAddrLSLSlow14, 135 FeatureALULSLFast, 136 FeaturePostRAScheduler, 137 FeatureEnableSelectOptimize, 138 FeaturePredictableSelectIsExpensive]>; 139 140def TuneA78C : SubtargetFeature<"a78c", "ARMProcFamily", 141 "CortexA78C", 142 "Cortex-A78C ARM processors", [ 143 FeatureCmpBccFusion, 144 FeatureFuseAES, 145 FeatureFuseAdrpAdd, 146 FeatureAddrLSLSlow14, 147 FeatureALULSLFast, 148 FeaturePostRAScheduler, 149 FeatureEnableSelectOptimize, 150 FeaturePredictableSelectIsExpensive]>; 151 152def TuneA710 : SubtargetFeature<"a710", "ARMProcFamily", "CortexA710", 153 "Cortex-A710 ARM processors", [ 154 FeatureCmpBccFusion, 155 FeatureFuseAES, 156 FeatureFuseAdrpAdd, 157 FeatureALULSLFast, 158 FeaturePostRAScheduler, 159 FeatureEnableSelectOptimize, 160 FeaturePredictableSelectIsExpensive]>; 161 162def TuneA715 : SubtargetFeature<"a715", "ARMProcFamily", "CortexA715", 163 "Cortex-A715 ARM processors", [ 164 FeatureFuseAES, 165 FeaturePostRAScheduler, 166 FeatureCmpBccFusion, 167 FeatureALULSLFast, 168 FeatureFuseAdrpAdd, 169 FeatureEnableSelectOptimize, 170 FeaturePredictableSelectIsExpensive]>; 171 172def TuneA720 : SubtargetFeature<"a720", "ARMProcFamily", "CortexA720", 173 "Cortex-A720 ARM processors", [ 174 FeatureFuseAES, 175 FeaturePostRAScheduler, 176 FeatureCmpBccFusion, 177 FeatureALULSLFast, 178 FeatureFuseAdrpAdd, 179 FeatureEnableSelectOptimize, 180 FeaturePredictableSelectIsExpensive]>; 181 182def TuneA720AE : SubtargetFeature<"a720ae", "ARMProcFamily", "CortexA720", 183 "Cortex-A720AE ARM processors", [ 184 FeatureFuseAES, 185 FeaturePostRAScheduler, 186 FeatureCmpBccFusion, 187 FeatureALULSLFast, 188 FeatureFuseAdrpAdd, 189 FeatureEnableSelectOptimize, 190 FeaturePredictableSelectIsExpensive]>; 191 192def TuneA725 : SubtargetFeature<"cortex-a725", "ARMProcFamily", 193 "CortexA725", 194 "Cortex-A725 ARM processors", [ 195 FeatureFuseAES, 196 FeaturePostRAScheduler, 197 FeatureCmpBccFusion, 198 FeatureALULSLFast, 199 FeatureFuseAdrpAdd, 200 FeatureEnableSelectOptimize, 201 FeaturePredictableSelectIsExpensive]>; 202 203def TuneR82 : SubtargetFeature<"cortex-r82", "ARMProcFamily", 204 "CortexR82", 205 "Cortex-R82 ARM processors", [ 206 FeaturePostRAScheduler]>; 207 208def TuneR82AE : SubtargetFeature<"cortex-r82ae", "ARMProcFamily", 209 "CortexR82AE", 210 "Cortex-R82-AE ARM processors", 211 [FeaturePostRAScheduler]>; 212 213def TuneX1 : SubtargetFeature<"cortex-x1", "ARMProcFamily", "CortexX1", 214 "Cortex-X1 ARM processors", [ 215 FeatureCmpBccFusion, 216 FeatureFuseAES, 217 FeatureFuseAdrpAdd, 218 FeatureAddrLSLSlow14, 219 FeatureALULSLFast, 220 FeaturePostRAScheduler, 221 FeatureEnableSelectOptimize, 222 FeaturePredictableSelectIsExpensive]>; 223 224def TuneX2 : SubtargetFeature<"cortex-x2", "ARMProcFamily", "CortexX2", 225 "Cortex-X2 ARM processors", [ 226 FeatureCmpBccFusion, 227 FeatureFuseAES, 228 FeatureFuseAdrpAdd, 229 FeatureALULSLFast, 230 FeaturePostRAScheduler, 231 FeatureEnableSelectOptimize, 232 FeatureUseFixedOverScalableIfEqualCost, 233 FeaturePredictableSelectIsExpensive]>; 234 235def TuneX3 : SubtargetFeature<"cortex-x3", "ARMProcFamily", "CortexX3", 236 "Cortex-X3 ARM processors", [ 237 FeatureALULSLFast, 238 FeatureFuseAdrpAdd, 239 FeatureFuseAES, 240 FeaturePostRAScheduler, 241 FeatureEnableSelectOptimize, 242 FeatureUseFixedOverScalableIfEqualCost, 243 FeatureAvoidLDAPUR, 244 FeaturePredictableSelectIsExpensive]>; 245 246def TuneX4 : SubtargetFeature<"cortex-x4", "ARMProcFamily", "CortexX4", 247 "Cortex-X4 ARM processors", [ 248 FeatureALULSLFast, 249 FeatureFuseAdrpAdd, 250 FeatureFuseAES, 251 FeaturePostRAScheduler, 252 FeatureEnableSelectOptimize, 253 FeatureUseFixedOverScalableIfEqualCost, 254 FeatureAvoidLDAPUR, 255 FeaturePredictableSelectIsExpensive]>; 256 257def TuneX925 : SubtargetFeature<"cortex-x925", "ARMProcFamily", 258 "CortexX925", "Cortex-X925 ARM processors",[ 259 FeatureALULSLFast, 260 FeatureFuseAdrpAdd, 261 FeatureFuseAES, 262 FeaturePostRAScheduler, 263 FeatureEnableSelectOptimize, 264 FeatureUseFixedOverScalableIfEqualCost, 265 FeatureAvoidLDAPUR, 266 FeaturePredictableSelectIsExpensive]>; 267 268def TuneA64FX : SubtargetFeature<"a64fx", "ARMProcFamily", "A64FX", 269 "Fujitsu A64FX processors", [ 270 FeaturePostRAScheduler, 271 FeatureAggressiveFMA, 272 FeatureArithmeticBccFusion, 273 FeatureStorePairSuppress, 274 FeaturePredictableSelectIsExpensive]>; 275 276def TuneMONAKA : SubtargetFeature<"fujitsu-monaka", "ARMProcFamily", "MONAKA", 277 "Fujitsu FUJITSU-MONAKA processors", [ 278 FeaturePredictableSelectIsExpensive, 279 FeatureEnableSelectOptimize, 280 FeaturePostRAScheduler, 281 FeatureArithmeticBccFusion, 282 ]>; 283 284def TuneCarmel : SubtargetFeature<"carmel", "ARMProcFamily", "Carmel", 285 "Nvidia Carmel processors">; 286 287// Note that cyclone does not fuse AES instructions, but newer apple chips do 288// perform the fusion and cyclone is used by default when targetting apple OSes. 289def TuneAppleA7 : SubtargetFeature<"apple-a7", "ARMProcFamily", "AppleA7", 290 "Apple A7 (the CPU formerly known as Cyclone)", [ 291 FeatureAlternateSExtLoadCVTF32Pattern, 292 FeatureArithmeticBccFusion, 293 FeatureArithmeticCbzFusion, 294 FeatureDisableLatencySchedHeuristic, 295 FeatureFuseAES, FeatureFuseCryptoEOR, 296 FeatureStorePairSuppress, 297 FeatureZCRegMove, 298 FeatureZCZeroing, 299 FeatureZCZeroingFPWorkaround]>; 300 301def TuneAppleA10 : SubtargetFeature<"apple-a10", "ARMProcFamily", "AppleA10", 302 "Apple A10", [ 303 FeatureAlternateSExtLoadCVTF32Pattern, 304 FeatureArithmeticBccFusion, 305 FeatureArithmeticCbzFusion, 306 FeatureDisableLatencySchedHeuristic, 307 FeatureFuseAES, 308 FeatureFuseCryptoEOR, 309 FeatureStorePairSuppress, 310 FeatureZCRegMove, 311 FeatureZCZeroing]>; 312 313def TuneAppleA11 : SubtargetFeature<"apple-a11", "ARMProcFamily", "AppleA11", 314 "Apple A11", [ 315 FeatureAlternateSExtLoadCVTF32Pattern, 316 FeatureArithmeticBccFusion, 317 FeatureArithmeticCbzFusion, 318 FeatureDisableLatencySchedHeuristic, 319 FeatureFuseAES, 320 FeatureFuseCryptoEOR, 321 FeatureStorePairSuppress, 322 FeatureZCRegMove, 323 FeatureZCZeroing]>; 324 325def TuneAppleA12 : SubtargetFeature<"apple-a12", "ARMProcFamily", "AppleA12", 326 "Apple A12", [ 327 FeatureAlternateSExtLoadCVTF32Pattern, 328 FeatureArithmeticBccFusion, 329 FeatureArithmeticCbzFusion, 330 FeatureDisableLatencySchedHeuristic, 331 FeatureFuseAES, 332 FeatureFuseCryptoEOR, 333 FeatureStorePairSuppress, 334 FeatureZCRegMove, 335 FeatureZCZeroing]>; 336 337def TuneAppleA13 : SubtargetFeature<"apple-a13", "ARMProcFamily", "AppleA13", 338 "Apple A13", [ 339 FeatureAlternateSExtLoadCVTF32Pattern, 340 FeatureArithmeticBccFusion, 341 FeatureArithmeticCbzFusion, 342 FeatureDisableLatencySchedHeuristic, 343 FeatureFuseAES, 344 FeatureFuseCryptoEOR, 345 FeatureStorePairSuppress, 346 FeatureZCRegMove, 347 FeatureZCZeroing]>; 348 349def TuneAppleA14 : SubtargetFeature<"apple-a14", "ARMProcFamily", "AppleA14", 350 "Apple A14", [ 351 FeatureAggressiveFMA, 352 FeatureAlternateSExtLoadCVTF32Pattern, 353 FeatureArithmeticBccFusion, 354 FeatureArithmeticCbzFusion, 355 FeatureDisableLatencySchedHeuristic, 356 FeatureFuseAddress, 357 FeatureFuseAES, 358 FeatureFuseArithmeticLogic, 359 FeatureFuseCCSelect, 360 FeatureFuseCryptoEOR, 361 FeatureFuseLiterals, 362 FeatureStorePairSuppress, 363 FeatureZCRegMove, 364 FeatureZCZeroing]>; 365 366def TuneAppleA15 : SubtargetFeature<"apple-a15", "ARMProcFamily", "AppleA15", 367 "Apple A15", [ 368 FeatureAlternateSExtLoadCVTF32Pattern, 369 FeatureArithmeticBccFusion, 370 FeatureArithmeticCbzFusion, 371 FeatureDisableLatencySchedHeuristic, 372 FeatureFuseAddress, 373 FeatureFuseAdrpAdd, 374 FeatureFuseAES, 375 FeatureFuseArithmeticLogic, 376 FeatureFuseCCSelect, 377 FeatureFuseCryptoEOR, 378 FeatureFuseLiterals, 379 FeatureStorePairSuppress, 380 FeatureZCRegMove, 381 FeatureZCZeroing]>; 382 383def TuneAppleA16 : SubtargetFeature<"apple-a16", "ARMProcFamily", "AppleA16", 384 "Apple A16", [ 385 FeatureAlternateSExtLoadCVTF32Pattern, 386 FeatureArithmeticBccFusion, 387 FeatureArithmeticCbzFusion, 388 FeatureDisableLatencySchedHeuristic, 389 FeatureFuseAddress, 390 FeatureFuseAdrpAdd, 391 FeatureFuseAES, 392 FeatureFuseArithmeticLogic, 393 FeatureFuseCCSelect, 394 FeatureFuseCryptoEOR, 395 FeatureFuseLiterals, 396 FeatureStorePairSuppress, 397 FeatureZCRegMove, 398 FeatureZCZeroing]>; 399 400def TuneAppleA17 : SubtargetFeature<"apple-a17", "ARMProcFamily", "AppleA17", 401 "Apple A17", [ 402 FeatureAlternateSExtLoadCVTF32Pattern, 403 FeatureArithmeticBccFusion, 404 FeatureArithmeticCbzFusion, 405 FeatureDisableLatencySchedHeuristic, 406 FeatureFuseAddress, 407 FeatureFuseAdrpAdd, 408 FeatureFuseAES, 409 FeatureFuseArithmeticLogic, 410 FeatureFuseCCSelect, 411 FeatureFuseCryptoEOR, 412 FeatureFuseLiterals, 413 FeatureStorePairSuppress, 414 FeatureZCRegMove, 415 FeatureZCZeroing]>; 416 417def TuneAppleM4 : SubtargetFeature<"apple-m4", "ARMProcFamily", "AppleM4", 418 "Apple M4", [ 419 FeatureAlternateSExtLoadCVTF32Pattern, 420 FeatureArithmeticBccFusion, 421 FeatureArithmeticCbzFusion, 422 FeatureDisableLatencySchedHeuristic, 423 FeatureFuseAddress, 424 FeatureFuseAdrpAdd, 425 FeatureFuseAES, 426 FeatureFuseArithmeticLogic, 427 FeatureFuseCCSelect, 428 FeatureFuseCryptoEOR, 429 FeatureFuseLiterals, 430 FeatureZCRegMove, 431 FeatureZCZeroing 432 ]>; 433 434def TuneExynosM3 : SubtargetFeature<"exynosm3", "ARMProcFamily", "ExynosM3", 435 "Samsung Exynos-M3 processors", 436 [FeatureExynosCheapAsMoveHandling, 437 FeatureForce32BitJumpTables, 438 FeatureFuseAddress, 439 FeatureFuseAES, 440 FeatureFuseCCSelect, 441 FeatureFuseAdrpAdd, 442 FeatureFuseLiterals, 443 FeatureStorePairSuppress, 444 FeatureALULSLFast, 445 FeaturePostRAScheduler, 446 FeaturePredictableSelectIsExpensive]>; 447 448// Re-uses some scheduling and tunings from the ExynosM3 proc family. 449def TuneExynosM4 : SubtargetFeature<"exynosm4", "ARMProcFamily", "ExynosM3", 450 "Samsung Exynos-M4 processors", 451 [FeatureArithmeticBccFusion, 452 FeatureArithmeticCbzFusion, 453 FeatureExynosCheapAsMoveHandling, 454 FeatureForce32BitJumpTables, 455 FeatureFuseAddress, 456 FeatureFuseAES, 457 FeatureFuseArithmeticLogic, 458 FeatureFuseCCSelect, 459 FeatureFuseAdrpAdd, 460 FeatureFuseLiterals, 461 FeatureStorePairSuppress, 462 FeatureALULSLFast, 463 FeaturePostRAScheduler, 464 FeatureZCZeroing]>; 465 466def TuneKryo : SubtargetFeature<"kryo", "ARMProcFamily", "Kryo", 467 "Qualcomm Kryo processors", [ 468 FeaturePostRAScheduler, 469 FeaturePredictableSelectIsExpensive, 470 FeatureZCZeroing, 471 FeatureALULSLFast, 472 FeatureStorePairSuppress]>; 473 474def TuneFalkor : SubtargetFeature<"falkor", "ARMProcFamily", "Falkor", 475 "Qualcomm Falkor processors", [ 476 FeaturePostRAScheduler, 477 FeaturePredictableSelectIsExpensive, 478 FeatureZCZeroing, 479 FeatureStorePairSuppress, 480 FeatureALULSLFast, 481 FeatureSlowSTRQro]>; 482 483def TuneNeoverseE1 : SubtargetFeature<"neoversee1", "ARMProcFamily", "NeoverseE1", 484 "Neoverse E1 ARM processors", [ 485 FeatureFuseAES, 486 FeatureFuseAdrpAdd, 487 FeaturePostRAScheduler]>; 488 489def TuneNeoverseN1 : SubtargetFeature<"neoversen1", "ARMProcFamily", "NeoverseN1", 490 "Neoverse N1 ARM processors", [ 491 FeatureFuseAES, 492 FeatureFuseAdrpAdd, 493 FeatureAddrLSLSlow14, 494 FeatureALULSLFast, 495 FeaturePostRAScheduler, 496 FeatureEnableSelectOptimize, 497 FeaturePredictableSelectIsExpensive]>; 498 499def TuneNeoverseN2 : SubtargetFeature<"neoversen2", "ARMProcFamily", "NeoverseN2", 500 "Neoverse N2 ARM processors", [ 501 FeatureFuseAES, 502 FeatureFuseAdrpAdd, 503 FeatureALULSLFast, 504 FeaturePostRAScheduler, 505 FeatureEnableSelectOptimize, 506 FeaturePredictableSelectIsExpensive]>; 507 508def TuneNeoverseN3 : SubtargetFeature<"neoversen3", "ARMProcFamily", "NeoverseN3", 509 "Neoverse N3 ARM processors", [ 510 FeatureFuseAES, 511 FeaturePostRAScheduler, 512 FeatureALULSLFast, 513 FeatureFuseAdrpAdd, 514 FeatureEnableSelectOptimize, 515 FeaturePredictableSelectIsExpensive]>; 516 517def TuneNeoverse512TVB : SubtargetFeature<"neoverse512tvb", "ARMProcFamily", "Neoverse512TVB", 518 "Neoverse 512-TVB ARM processors", [ 519 FeatureFuseAES, 520 FeatureFuseAdrpAdd, 521 FeatureALULSLFast, 522 FeaturePostRAScheduler, 523 FeatureEnableSelectOptimize, 524 FeaturePredictableSelectIsExpensive]>; 525 526def TuneNeoverseV1 : SubtargetFeature<"neoversev1", "ARMProcFamily", "NeoverseV1", 527 "Neoverse V1 ARM processors", [ 528 FeatureFuseAES, 529 FeatureFuseAdrpAdd, 530 FeatureAddrLSLSlow14, 531 FeatureALULSLFast, 532 FeaturePostRAScheduler, 533 FeatureEnableSelectOptimize, 534 FeaturePredictableSelectIsExpensive, 535 FeatureNoSVEFPLD1R]>; 536 537def TuneNeoverseV2 : SubtargetFeature<"neoversev2", "ARMProcFamily", "NeoverseV2", 538 "Neoverse V2 ARM processors", [ 539 FeatureFuseAES, 540 FeatureCmpBccFusion, 541 FeatureFuseAdrpAdd, 542 FeatureALULSLFast, 543 FeaturePostRAScheduler, 544 FeatureEnableSelectOptimize, 545 FeatureUseFixedOverScalableIfEqualCost, 546 FeatureAvoidLDAPUR, 547 FeaturePredictableSelectIsExpensive]>; 548 549def TuneNeoverseV3 : SubtargetFeature<"neoversev3", "ARMProcFamily", "NeoverseV3", 550 "Neoverse V3 ARM processors", [ 551 FeatureFuseAES, 552 FeatureALULSLFast, 553 FeatureFuseAdrpAdd, 554 FeaturePostRAScheduler, 555 FeatureEnableSelectOptimize, 556 FeatureAvoidLDAPUR, 557 FeaturePredictableSelectIsExpensive]>; 558 559def TuneNeoverseV3AE : SubtargetFeature<"neoversev3AE", "ARMProcFamily", "NeoverseV3", 560 "Neoverse V3AE ARM processors", [ 561 FeatureFuseAES, 562 FeatureALULSLFast, 563 FeatureFuseAdrpAdd, 564 FeaturePostRAScheduler, 565 FeatureEnableSelectOptimize, 566 FeatureAvoidLDAPUR, 567 FeaturePredictableSelectIsExpensive]>; 568 569def TuneSaphira : SubtargetFeature<"saphira", "ARMProcFamily", "Saphira", 570 "Qualcomm Saphira processors", [ 571 FeaturePostRAScheduler, 572 FeaturePredictableSelectIsExpensive, 573 FeatureZCZeroing, 574 FeatureStorePairSuppress, 575 FeatureALULSLFast]>; 576 577def TuneThunderX2T99 : SubtargetFeature<"thunderx2t99", "ARMProcFamily", "ThunderX2T99", 578 "Cavium ThunderX2 processors", [ 579 FeatureAggressiveFMA, 580 FeatureArithmeticBccFusion, 581 FeaturePostRAScheduler, 582 FeatureStorePairSuppress, 583 FeaturePredictableSelectIsExpensive]>; 584 585def TuneThunderX3T110 : SubtargetFeature<"thunderx3t110", "ARMProcFamily", 586 "ThunderX3T110", 587 "Marvell ThunderX3 processors", [ 588 FeatureAggressiveFMA, 589 FeatureArithmeticBccFusion, 590 FeaturePostRAScheduler, 591 FeaturePredictableSelectIsExpensive, 592 FeatureBalanceFPOps, 593 FeatureStorePairSuppress, 594 FeatureStrictAlign]>; 595 596def TuneThunderX : SubtargetFeature<"thunderx", "ARMProcFamily", "ThunderX", 597 "Cavium ThunderX processors", [ 598 FeaturePostRAScheduler, 599 FeatureStorePairSuppress, 600 FeaturePredictableSelectIsExpensive]>; 601 602def TuneThunderXT88 : SubtargetFeature<"thunderxt88", "ARMProcFamily", 603 "ThunderXT88", 604 "Cavium ThunderX processors", [ 605 FeaturePostRAScheduler, 606 FeatureStorePairSuppress, 607 FeaturePredictableSelectIsExpensive]>; 608 609def TuneThunderXT81 : SubtargetFeature<"thunderxt81", "ARMProcFamily", 610 "ThunderXT81", 611 "Cavium ThunderX processors", [ 612 FeaturePostRAScheduler, 613 FeatureStorePairSuppress, 614 FeaturePredictableSelectIsExpensive]>; 615 616def TuneThunderXT83 : SubtargetFeature<"thunderxt83", "ARMProcFamily", 617 "ThunderXT83", 618 "Cavium ThunderX processors", [ 619 FeaturePostRAScheduler, 620 FeatureStorePairSuppress, 621 FeaturePredictableSelectIsExpensive]>; 622 623def TuneTSV110 : SubtargetFeature<"tsv110", "ARMProcFamily", "TSV110", 624 "HiSilicon TS-V110 processors", [ 625 FeatureFuseAES, 626 FeatureStorePairSuppress, 627 FeaturePostRAScheduler]>; 628 629def TuneAmpere1 : SubtargetFeature<"ampere1", "ARMProcFamily", "Ampere1", 630 "Ampere Computing Ampere-1 processors", [ 631 FeaturePostRAScheduler, 632 FeatureFuseAES, 633 FeatureFuseAdrpAdd, 634 FeatureALULSLFast, 635 FeatureAggressiveFMA, 636 FeatureArithmeticBccFusion, 637 FeatureCmpBccFusion, 638 FeatureFuseAddress, 639 FeatureFuseLiterals, 640 FeatureStorePairSuppress, 641 FeatureLdpAlignedOnly, 642 FeatureStpAlignedOnly]>; 643 644def TuneAmpere1A : SubtargetFeature<"ampere1a", "ARMProcFamily", "Ampere1A", 645 "Ampere Computing Ampere-1A processors", [ 646 FeaturePostRAScheduler, 647 FeatureFuseAES, 648 FeatureFuseAdrpAdd, 649 FeatureALULSLFast, 650 FeatureAggressiveFMA, 651 FeatureArithmeticBccFusion, 652 FeatureCmpBccFusion, 653 FeatureFuseAddress, 654 FeatureFuseLiterals, 655 FeatureFuseAddSub2RegAndConstOne, 656 FeatureStorePairSuppress, 657 FeatureLdpAlignedOnly, 658 FeatureStpAlignedOnly]>; 659 660def TuneAmpere1B : SubtargetFeature<"ampere1b", "ARMProcFamily", "Ampere1B", 661 "Ampere Computing Ampere-1B processors", [ 662 FeaturePostRAScheduler, 663 FeatureFuseAES, 664 FeatureFuseAdrpAdd, 665 FeatureALULSLFast, 666 FeatureAggressiveFMA, 667 FeatureArithmeticBccFusion, 668 FeatureCmpBccFusion, 669 FeatureFuseAddress, 670 FeatureFuseLiterals, 671 FeatureStorePairSuppress, 672 FeatureEnableSelectOptimize, 673 FeaturePredictableSelectIsExpensive, 674 FeatureLdpAlignedOnly, 675 FeatureStpAlignedOnly]>; 676 677def TuneOryon : SubtargetFeature<"oryon-1", "ARMProcFamily", 678 "Oryon", 679 "Nuvia Inc Oryon processors", [ 680 FeatureSHA2, 681 FeatureAES, 682 FeatureFPARMv8, 683 FeatureNEON, 684 FeatureFuseAES, 685 FeatureFuseAdrpAdd, 686 FeatureEnableSelectOptimize, 687 FeatureFuseCryptoEOR, 688 FeatureFuseAddress, 689 FeatureSM4, 690 FeatureSHA2, 691 FeatureSHA3, 692 FeatureAES, 693 FeatureFullFP16, 694 FeatureFP16FML, 695 FeaturePerfMon, 696 FeatureSPE, 697 FeaturePostRAScheduler, 698 HasV8_6aOps]>; 699 700def ProcessorFeatures { 701 list<SubtargetFeature> A53 = [HasV8_0aOps, FeatureCRC, FeatureSHA2, FeatureAES, 702 FeatureFPARMv8, FeatureNEON, FeaturePerfMon]; 703 list<SubtargetFeature> A55 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 704 FeatureNEON, FeatureFullFP16, FeatureDotProd, 705 FeatureRCPC, FeaturePerfMon, FeatureCRC, 706 FeatureLSE, FeatureRAS, FeatureRDM]; 707 list<SubtargetFeature> A510 = [HasV9_0aOps, FeatureNEON, FeaturePerfMon, 708 FeatureMatMulInt8, FeatureBF16, FeatureAM, 709 FeatureMTE, FeatureETE, FeatureSVEBitPerm, 710 FeatureFP16FML, 711 FeatureCCIDX, 712 FeatureSB, FeaturePAuth, FeatureSSBS, FeatureSVE, FeatureSVE2, 713 FeatureComplxNum, FeatureCRC, FeatureDotProd, 714 FeatureFPARMv8,FeatureFullFP16, FeatureJS, FeatureLSE, 715 FeatureRAS, FeatureRCPC, FeatureRDM]; 716 list<SubtargetFeature> A520 = [HasV9_2aOps, FeaturePerfMon, FeatureAM, 717 FeatureMTE, FeatureETE, FeatureSVEBitPerm, 718 FeatureFP16FML, 719 FeatureCCIDX, 720 FeatureSB, FeatureSSBS, FeaturePAuth, FeatureFlagM, FeaturePredRes, 721 FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, FeatureCRC, 722 FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8, FeatureJS, 723 FeatureNEON, FeatureLSE, FeatureRAS, FeatureRCPC, FeatureRDM, 724 FeatureDotProd]; 725 list<SubtargetFeature> A520AE = [HasV9_2aOps, FeaturePerfMon, FeatureAM, 726 FeatureMTE, FeatureETE, FeatureSVEBitPerm, 727 FeatureFP16FML, 728 FeatureCCIDX, 729 FeatureSB, FeatureSSBS, FeaturePAuth, FeatureFlagM, FeaturePredRes, 730 FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, FeatureCRC, 731 FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8, FeatureJS, 732 FeatureNEON, FeatureLSE, FeatureRAS, FeatureRCPC, FeatureRDM, 733 FeatureDotProd]; 734 list<SubtargetFeature> A65 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 735 FeatureNEON, FeatureFullFP16, FeatureDotProd, 736 FeatureRCPC, FeatureSSBS, FeatureRAS, 737 FeaturePerfMon, FeatureCRC, FeatureLSE, FeatureRDM]; 738 list<SubtargetFeature> A76 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 739 FeatureNEON, FeatureFullFP16, FeatureDotProd, 740 FeatureRCPC, FeatureSSBS, FeaturePerfMon, 741 FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM]; 742 list<SubtargetFeature> A77 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 743 FeatureNEON, FeatureFullFP16, FeatureDotProd, 744 FeatureRCPC, FeaturePerfMon, FeatureSSBS, 745 FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM]; 746 list<SubtargetFeature> A78 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 747 FeatureNEON, FeatureFullFP16, FeatureDotProd, 748 FeatureRCPC, FeaturePerfMon, FeatureSPE, 749 FeatureSSBS, FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM]; 750 list<SubtargetFeature> A78AE = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 751 FeatureNEON, FeatureFullFP16, FeatureDotProd, 752 FeatureRCPC, FeaturePerfMon, FeatureSPE, 753 FeatureSSBS, FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM]; 754 list<SubtargetFeature> A78C = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 755 FeatureNEON, FeatureFullFP16, FeatureDotProd, 756 FeatureFlagM, FeaturePAuth, 757 FeaturePerfMon, FeatureRCPC, FeatureSPE, 758 FeatureSSBS, FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM]; 759 list<SubtargetFeature> A710 = [HasV9_0aOps, FeatureNEON, FeaturePerfMon, 760 FeatureCCIDX, FeatureSSBS, 761 FeatureETE, FeatureMTE, FeatureFP16FML, 762 FeatureSVEBitPerm, FeatureBF16, FeatureMatMulInt8, 763 FeaturePAuth, FeatureFlagM, FeatureSB, FeatureSVE, FeatureSVE2, 764 FeatureComplxNum, FeatureCRC, FeatureDotProd, FeatureFPARMv8, 765 FeatureFullFP16, FeatureJS, FeatureLSE, FeatureRAS, FeatureRCPC, FeatureRDM]; 766 list<SubtargetFeature> A715 = [HasV9_0aOps, FeatureNEON, FeatureMTE, 767 FeatureCCIDX, 768 FeatureFP16FML, FeatureSVE, FeatureTRBE, 769 FeatureSVEBitPerm, FeatureBF16, FeatureETE, 770 FeaturePerfMon, FeatureMatMulInt8, FeatureSPE, 771 FeatureSB, FeatureSSBS, FeatureFullFP16, FeaturePAuth, FeaturePredRes, FeatureFlagM, 772 FeatureSVE2, FeatureComplxNum, FeatureCRC, 773 FeatureDotProd, FeatureFPARMv8, 774 FeatureJS, FeatureLSE, FeatureRAS, 775 FeatureRCPC, FeatureRDM]; 776 list<SubtargetFeature> A720 = [HasV9_2aOps, FeatureMTE, FeatureFP16FML, 777 FeatureCCIDX, 778 FeatureTRBE, FeatureSVEBitPerm, FeatureETE, 779 FeaturePerfMon, FeatureSPE, FeatureSPE_EEF, 780 FeatureSB, FeatureSSBS, FeaturePAuth, FeatureFlagM, FeaturePredRes, 781 FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, FeatureCRC, 782 FeatureDotProd, FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8, 783 FeatureJS, FeatureLSE, FeatureNEON, FeatureRAS, 784 FeatureRCPC, FeatureRDM]; 785 list<SubtargetFeature> A720AE = [HasV9_2aOps, FeatureMTE, FeatureFP16FML, 786 FeatureCCIDX, 787 FeatureTRBE, FeatureSVEBitPerm, FeatureETE, 788 FeaturePerfMon, FeatureSPE, FeatureSPE_EEF, 789 FeatureSB, FeatureSSBS, FeaturePAuth, FeatureFlagM, FeaturePredRes, 790 FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, FeatureCRC, 791 FeatureDotProd, FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8, 792 FeatureJS, FeatureLSE, FeatureNEON, FeatureRAS, 793 FeatureRCPC, FeatureRDM]; 794 list<SubtargetFeature> A725 = [HasV9_2aOps, FeatureMTE, FeatureFP16FML, 795 FeatureCCIDX, 796 FeatureETE, FeaturePerfMon, FeatureSPE, 797 FeatureSVEBitPerm, FeatureSPE_EEF, FeatureTRBE, 798 FeatureFlagM, FeaturePredRes, FeatureSB, FeatureSSBS, 799 FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, FeatureCRC, 800 FeatureDotProd, FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8, 801 FeatureJS, FeatureLSE, FeatureNEON, FeaturePAuth, FeatureRAS, 802 FeatureRCPC, FeatureRDM]; 803 list<SubtargetFeature> R82 = [HasV8_0rOps, FeaturePerfMon, FeatureFullFP16, 804 FeatureFP16FML, FeatureSSBS, FeaturePredRes, 805 FeatureSB, FeatureRDM, FeatureDotProd, 806 FeatureComplxNum, FeatureJS, 807 FeatureCacheDeepPersist, 808 FeatureFlagM, FeatureCRC, FeatureLSE, FeatureRAS, FeatureFPARMv8, 809 FeatureNEON, FeaturePAuth, FeatureRCPC]; 810 list<SubtargetFeature> R82AE = [HasV8_0rOps, FeaturePerfMon, FeatureFullFP16, 811 FeatureFP16FML, FeatureSSBS, FeaturePredRes, 812 FeatureSB, FeatureRDM, FeatureDotProd, 813 FeatureComplxNum, FeatureJS, 814 FeatureCacheDeepPersist, 815 FeatureLSE, FeatureFlagM, FeatureCRC, FeatureFPARMv8, FeatureNEON, 816 FeaturePAuth, FeatureRAS, FeatureRCPC]; 817 list<SubtargetFeature> X1 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 818 FeatureNEON, FeatureRCPC, FeaturePerfMon, 819 FeatureSPE, FeatureFullFP16, FeatureDotProd, 820 FeatureSSBS, FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM]; 821 list<SubtargetFeature> X1C = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 822 FeatureNEON, FeatureRCPC_IMMO, FeaturePerfMon, 823 FeatureSPE, FeatureFullFP16, FeatureDotProd, 824 FeaturePAuth, FeatureSSBS, FeatureFlagM, 825 FeatureLSE2, 826 FeatureRCPC, FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM]; 827 list<SubtargetFeature> X2 = [HasV9_0aOps, FeatureNEON, FeaturePerfMon, 828 FeatureMatMulInt8, FeatureBF16, FeatureAM, 829 FeatureMTE, FeatureETE, FeatureSVEBitPerm, 830 FeatureFP16FML, 831 FeatureCCIDX, 832 FeaturePAuth, FeatureSSBS, FeatureSB, FeatureSVE, FeatureSVE2, FeatureFlagM, 833 FeatureComplxNum, FeatureCRC, FeatureDotProd, FeatureFPARMv8, FeatureFullFP16, 834 FeatureJS, FeatureLSE, FeatureRAS, FeatureRCPC, FeatureRDM]; 835 list<SubtargetFeature> X3 = [HasV9_0aOps, FeatureSVE, FeatureNEON, 836 FeaturePerfMon, FeatureETE, FeatureTRBE, 837 FeatureSPE, FeatureBF16, FeatureMatMulInt8, 838 FeatureMTE, FeatureSVEBitPerm, FeatureFullFP16, 839 FeatureFP16FML, 840 FeatureCCIDX, 841 FeatureSB, FeaturePAuth, FeaturePredRes, FeatureFlagM, FeatureSSBS, 842 FeatureSVE2, FeatureComplxNum, FeatureCRC, FeatureFPARMv8, FeatureJS, 843 FeatureLSE, FeatureRAS, FeatureRCPC, FeatureRDM, FeatureDotProd]; 844 list<SubtargetFeature> X4 = [HasV9_2aOps, 845 FeaturePerfMon, FeatureETE, FeatureTRBE, 846 FeatureSPE, FeatureMTE, FeatureSVEBitPerm, 847 FeatureFP16FML, FeatureSPE_EEF, 848 FeatureCCIDX, 849 FeatureSB, FeatureSSBS, FeaturePAuth, FeatureFlagM, FeaturePredRes, 850 FeatureSVE, FeatureSVE2, FeatureComplxNum, FeatureCRC, FeatureDotProd, 851 FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8, FeatureJS, FeatureLSE, 852 FeatureNEON, FeatureRAS, FeatureRCPC, FeatureRDM, FeatureBF16]; 853 list<SubtargetFeature> X925 = [HasV9_2aOps, FeatureMTE, FeatureFP16FML, 854 FeatureCCIDX, 855 FeatureETE, FeaturePerfMon, FeatureSPE, 856 FeatureSVEBitPerm, FeatureSPE_EEF, FeatureTRBE, 857 FeatureFlagM, FeaturePredRes, FeatureSB, FeatureSSBS, 858 FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, FeatureCRC, 859 FeatureDotProd, FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8, 860 FeatureJS, FeatureLSE, FeatureNEON, FeaturePAuth, FeatureRAS, 861 FeatureRCPC, FeatureRDM]; 862 list<SubtargetFeature> A64FX = [HasV8_2aOps, FeatureFPARMv8, FeatureNEON, 863 FeatureSHA2, FeaturePerfMon, FeatureFullFP16, 864 FeatureSVE, FeatureComplxNum, 865 FeatureAES, FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM]; 866 list<SubtargetFeature> MONAKA = [HasV9_3aOps, FeaturePerfMon, FeatureCCIDX, 867 FeatureFPAC, FeatureFP16FML, FeatureRandGen, 868 FeatureSSBS, FeatureLS64, FeatureCLRBHB, 869 FeatureSPECRES2, FeatureSVEAES, FeatureSVE2SM4, 870 FeatureSVE2SHA3, FeatureSVE2, FeatureSVEBitPerm, FeatureETE, 871 FeatureMEC, FeatureFP8DOT2]; 872 list<SubtargetFeature> Carmel = [HasV8_2aOps, FeatureNEON, FeatureSHA2, FeatureAES, 873 FeatureFullFP16, FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM, 874 FeatureFPARMv8]; 875 list<SubtargetFeature> AppleA7 = [HasV8_0aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 876 FeatureNEON,FeaturePerfMon]; 877 list<SubtargetFeature> AppleA10 = [HasV8_0aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 878 FeatureNEON, FeaturePerfMon, FeatureCRC, 879 FeatureRDM, FeaturePAN, FeatureLOR, FeatureVH]; 880 list<SubtargetFeature> AppleA11 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 881 FeatureNEON, FeaturePerfMon, FeatureFullFP16, FeatureCRC, 882 FeatureLSE, FeatureRAS, FeatureRDM]; 883 list<SubtargetFeature> AppleA12 = [HasV8_3aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 884 FeatureNEON, FeaturePerfMon, FeatureFullFP16, 885 FeatureComplxNum, FeatureCRC, FeatureJS, FeatureLSE, 886 FeaturePAuth, FeatureRAS, FeatureRCPC, FeatureRDM]; 887 list<SubtargetFeature> AppleA13 = [HasV8_4aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 888 FeatureNEON, FeaturePerfMon, FeatureFullFP16, 889 FeatureFP16FML, FeatureSHA3, FeatureComplxNum, FeatureCRC, FeatureJS, FeatureLSE, 890 FeaturePAuth, FeatureRAS, FeatureRCPC, FeatureRDM, FeatureDotProd]; 891 list<SubtargetFeature> AppleA14 = [HasV8_4aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 892 FeatureNEON, FeaturePerfMon, 893 FeatureFullFP16, FeatureFP16FML, FeatureSHA3, 894 // ArmV8.5-a extensions, excluding BTI: 895 FeatureAltFPCmp, FeatureFRInt3264, 896 FeatureSpecRestrict, FeatureSSBS, FeatureSB, 897 FeaturePredRes, FeatureCacheDeepPersist, 898 FeatureComplxNum, FeatureCRC, FeatureJS, FeatureLSE, 899 FeaturePAuth, FeatureRAS, FeatureRCPC, FeatureRDM, 900 FeatureDotProd]; 901 list<SubtargetFeature> AppleA15 = [HasV8_6aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 902 FeatureNEON, FeaturePerfMon, FeatureSHA3, 903 FeatureFullFP16, FeatureFP16FML, 904 FeatureComplxNum, FeatureCRC, FeatureJS, 905 FeatureLSE, FeaturePAuth, FeatureFPAC, 906 FeatureRAS, FeatureRCPC, FeatureRDM, 907 FeatureBF16, FeatureDotProd, FeatureMatMulInt8, FeatureSSBS]; 908 list<SubtargetFeature> AppleA16 = [HasV8_6aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 909 FeatureNEON, FeaturePerfMon, FeatureSHA3, 910 FeatureFullFP16, FeatureFP16FML, 911 FeatureHCX, 912 FeatureComplxNum, FeatureCRC, FeatureJS, 913 FeatureLSE, FeaturePAuth, FeatureFPAC, 914 FeatureRAS, FeatureRCPC, FeatureRDM, 915 FeatureBF16, FeatureDotProd, FeatureMatMulInt8, FeatureSSBS]; 916 list<SubtargetFeature> AppleA17 = [HasV8_6aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 917 FeatureNEON, FeaturePerfMon, FeatureSHA3, 918 FeatureFullFP16, FeatureFP16FML, 919 FeatureHCX, 920 FeatureComplxNum, FeatureCRC, FeatureJS, 921 FeatureLSE, FeaturePAuth, FeatureFPAC, 922 FeatureRAS, FeatureRCPC, FeatureRDM, 923 FeatureBF16, FeatureDotProd, FeatureMatMulInt8, FeatureSSBS]; 924 // Technically apple-m4 is v9.2a, but we can't use that here. 925 // Historically, llvm defined v9.0a as requiring SVE, but it's optional 926 // according to the Arm ARM, and not supported by the core. We decoupled the 927 // two in the clang driver and in the backend subtarget features, but it's 928 // still an issue in the clang frontend. v8.7a is the next closest choice. 929 list<SubtargetFeature> AppleM4 = [HasV8_7aOps, FeatureSHA2, FeatureFPARMv8, 930 FeatureNEON, FeaturePerfMon, FeatureSHA3, 931 FeatureFullFP16, FeatureFP16FML, 932 FeatureAES, FeatureBF16, 933 FeatureSME, FeatureSME2, 934 FeatureSMEF64F64, FeatureSMEI16I64, 935 FeatureComplxNum, FeatureCRC, FeatureJS, 936 FeatureLSE, FeaturePAuth, FeatureFPAC, 937 FeatureRAS, FeatureRCPC, FeatureRDM, 938 FeatureDotProd, FeatureMatMulInt8]; 939 list<SubtargetFeature> ExynosM3 = [HasV8_0aOps, FeatureCRC, FeatureSHA2, FeatureAES, 940 FeaturePerfMon, FeatureNEON, FeatureFPARMv8]; 941 list<SubtargetFeature> ExynosM4 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureDotProd, 942 FeatureFullFP16, FeaturePerfMon, FeatureCRC, FeatureFPARMv8, 943 FeatureLSE, FeatureNEON, FeatureRAS, FeatureRDM]; 944 list<SubtargetFeature> Falkor = [HasV8_0aOps, FeatureCRC, FeatureSHA2, FeatureAES, 945 FeatureFPARMv8, FeatureNEON, FeaturePerfMon, 946 FeatureRDM]; 947 list<SubtargetFeature> NeoverseE1 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureDotProd, 948 FeatureFPARMv8, FeatureFullFP16, FeatureNEON, 949 FeatureRCPC, FeatureSSBS, FeaturePerfMon, FeatureCRC, 950 FeatureLSE, FeatureRAS, FeatureRDM]; 951 list<SubtargetFeature> NeoverseN1 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureDotProd, 952 FeatureFPARMv8, FeatureFullFP16, FeatureNEON, 953 FeatureRCPC, FeatureSPE, FeatureSSBS, 954 FeaturePerfMon, FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM]; 955 list<SubtargetFeature> NeoverseN2 = [HasV9_0aOps, FeatureBF16, FeatureETE, FeatureFP16FML, 956 FeatureMatMulInt8, FeatureMTE, FeatureSVE2, 957 FeatureSVEBitPerm, FeatureTRBE, 958 FeaturePerfMon, 959 FeatureCCIDX, 960 FeatureDotProd, FeatureFullFP16, FeatureSB, FeatureSSBS, FeatureSVE, 961 FeatureComplxNum, FeatureCRC, FeatureFPARMv8, FeatureJS, FeatureLSE, 962 FeatureNEON, FeaturePAuth, FeatureRAS, FeatureRCPC, FeatureRDM]; 963 list<SubtargetFeature> NeoverseN3 = [HasV9_2aOps, FeatureETE, FeatureFP16FML, 964 FeatureFullFP16, FeatureMTE, FeaturePerfMon, 965 FeatureRandGen, FeatureSPE, FeatureSPE_EEF, 966 FeatureSVEBitPerm, 967 FeatureCCIDX, 968 FeatureSSBS, FeatureSB, FeaturePredRes, FeaturePAuth, FeatureFlagM, 969 FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, 970 FeatureCRC, FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8, 971 FeatureJS, FeatureLSE, FeatureRAS, FeatureRCPC, FeatureRDM, 972 FeatureNEON]; 973 list<SubtargetFeature> Neoverse512TVB = [HasV8_4aOps, FeatureBF16, FeatureCacheDeepPersist, 974 FeatureSHA2, FeatureAES, FeatureFPARMv8, FeatureFP16FML, 975 FeatureFullFP16, FeatureMatMulInt8, FeatureNEON, 976 FeaturePerfMon, FeatureRandGen, FeatureSPE, 977 FeatureSSBS, FeatureSVE, 978 FeatureCCIDX, 979 FeatureSHA3, FeatureSM4, FeatureDotProd, FeatureComplxNum, 980 FeatureCRC, FeatureJS, FeatureLSE, FeaturePAuth, FeatureRAS, 981 FeatureRCPC, FeatureRDM]; 982 list<SubtargetFeature> NeoverseV1 = [HasV8_4aOps, FeatureBF16, FeatureCacheDeepPersist, 983 FeatureSHA2, FeatureAES, FeatureFPARMv8, FeatureFP16FML, 984 FeatureFullFP16, FeatureMatMulInt8, FeatureNEON, 985 FeaturePerfMon, FeatureRandGen, FeatureSPE, 986 FeatureSSBS, FeatureSVE, 987 FeatureCCIDX, 988 FeatureSHA3, FeatureSM4, FeatureDotProd, FeatureComplxNum, 989 FeatureCRC, FeatureJS, FeatureLSE, FeaturePAuth, FeatureRAS, 990 FeatureRCPC, FeatureRDM]; 991 list<SubtargetFeature> NeoverseV2 = [HasV9_0aOps, FeatureBF16, FeatureSPE, 992 FeaturePerfMon, FeatureETE, FeatureMatMulInt8, 993 FeatureNEON, FeatureSVEBitPerm, FeatureFP16FML, 994 FeatureMTE, FeatureRandGen, 995 FeatureCCIDX, 996 FeatureSVE, FeatureSVE2, FeatureSSBS, FeatureFullFP16, FeatureDotProd, 997 FeatureComplxNum, FeatureCRC, FeatureFPARMv8, FeatureJS, FeatureLSE, 998 FeaturePAuth, FeatureRAS, FeatureRCPC, FeatureRDM]; 999 list<SubtargetFeature> NeoverseV3 = [HasV9_2aOps, FeatureETE, FeatureFP16FML, 1000 FeatureFullFP16, FeatureLS64, FeatureMTE, 1001 FeaturePerfMon, FeatureRandGen, FeatureSPE, 1002 FeatureCCIDX, 1003 FeatureSPE_EEF, FeatureSVEBitPerm, FeatureBRBE, 1004 FeatureSSBS, FeatureSB, FeaturePredRes, FeaturePAuth, FeatureFlagM, 1005 FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, FeatureCRC, 1006 FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8, FeatureJS, FeatureLSE, 1007 FeatureNEON, FeatureRAS, FeatureRCPC, FeatureRDM, FeatureRME]; 1008 list<SubtargetFeature> NeoverseV3AE = [HasV9_2aOps, FeatureETE, FeatureFP16FML, 1009 FeatureFullFP16, FeatureLS64, FeatureMTE, 1010 FeaturePerfMon, FeatureRandGen, FeatureSPE, 1011 FeatureSPE_EEF, FeatureSVEBitPerm, FeatureBRBE, 1012 FeatureSSBS, FeatureSB, FeaturePredRes, FeaturePAuth, FeatureFlagM, 1013 FeatureCCIDX, 1014 FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, FeatureCRC, 1015 FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8, FeatureJS, 1016 FeatureLSE, FeatureNEON, FeatureRAS, FeatureRCPC, FeatureRDM, 1017 FeatureRME]; 1018 list<SubtargetFeature> Saphira = [HasV8_4aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 1019 FeatureNEON, FeatureSPE, FeaturePerfMon, FeatureCRC, 1020 FeatureCCIDX, 1021 FeatureLSE, FeatureRDM, FeatureRAS, FeatureRCPC]; 1022 list<SubtargetFeature> ThunderX = [HasV8_0aOps, FeatureCRC, FeatureSHA2, FeatureAES, 1023 FeatureFPARMv8, FeaturePerfMon, FeatureNEON]; 1024 list<SubtargetFeature> ThunderX2T99 = [HasV8_1aOps, FeatureCRC, FeatureSHA2, FeatureAES, 1025 FeatureFPARMv8, FeatureNEON, FeatureLSE, 1026 FeatureRDM]; 1027 list<SubtargetFeature> ThunderX3T110 = [HasV8_3aOps, FeatureCRC, FeatureSHA2, FeatureAES, 1028 FeatureFPARMv8, FeatureNEON, FeatureLSE, 1029 FeatureCCIDX, 1030 FeaturePAuth, FeaturePerfMon, FeatureComplxNum, 1031 FeatureJS, FeatureRAS, FeatureRCPC, FeatureRDM]; 1032 list<SubtargetFeature> TSV110 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8, 1033 FeatureNEON, FeaturePerfMon, FeatureSPE, 1034 FeatureFullFP16, FeatureFP16FML, FeatureDotProd, 1035 FeatureJS, FeatureComplxNum, FeatureCRC, FeatureLSE, 1036 FeatureRAS, FeatureRDM]; 1037 list<SubtargetFeature> Ampere1 = [HasV8_6aOps, FeatureNEON, FeaturePerfMon, 1038 FeatureSSBS, FeatureRandGen, FeatureSB, 1039 FeatureSHA2, FeatureSHA3, FeatureAES, 1040 FeatureFullFP16, FeatureBF16, FeatureComplxNum, FeatureCRC, 1041 FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8, FeatureJS, 1042 FeatureCCIDX, 1043 FeatureLSE, FeaturePAuth, FeatureRAS, FeatureRCPC, FeatureRDM]; 1044 list<SubtargetFeature> Ampere1A = [HasV8_6aOps, FeatureNEON, FeaturePerfMon, 1045 FeatureMTE, FeatureSSBS, FeatureRandGen, 1046 FeatureSB, FeatureSM4, FeatureSHA2, 1047 FeatureSHA3, FeatureAES, 1048 FeatureFullFP16, FeatureBF16, FeatureComplxNum, 1049 FeatureCRC, FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8, 1050 FeatureJS, FeatureLSE, FeaturePAuth, FeatureRAS, FeatureRCPC, 1051 FeatureCCIDX, 1052 FeatureRDM]; 1053 list<SubtargetFeature> Ampere1B = [HasV8_7aOps, FeatureNEON, FeaturePerfMon, 1054 FeatureMTE, FeatureSSBS, FeatureRandGen, 1055 FeatureSB, FeatureSM4, FeatureSHA2, 1056 FeatureSHA3, FeatureAES, FeatureCSSC, 1057 FeatureWFxT, FeatureFullFP16, FeatureBF16, FeatureComplxNum, 1058 FeatureCRC, FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8, 1059 FeatureJS, FeatureLSE, FeaturePAuth, FeatureRAS, FeatureRCPC, 1060 FeatureCCIDX, 1061 FeatureRDM]; 1062 1063 list<SubtargetFeature> Oryon = [HasV8_6aOps, FeatureNEON, FeaturePerfMon, 1064 FeatureRandGen, 1065 FeaturePAuth, FeatureSM4, FeatureSHA2, 1066 FeatureSHA3, FeatureAES, 1067 FeatureSPE, FeatureBF16, FeatureComplxNum, FeatureCRC, 1068 FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8, 1069 FeatureSSBS, FeatureCCIDX, 1070 FeatureJS, FeatureLSE, FeatureRAS, FeatureRCPC, FeatureRDM]; 1071 1072 // ETE and TRBE are future architecture extensions. We temporarily enable them 1073 // by default for users targeting generic AArch64. The extensions do not 1074 // affect code generated by the compiler and can be used only by explicitly 1075 // mentioning the new system register names in assembly. 1076 list<SubtargetFeature> Generic = [FeatureFPARMv8, FeatureNEON, FeatureETE]; 1077} 1078 1079// Define an alternative name for a given Processor. 1080class ProcessorAlias<string n, string alias> { 1081 string Name = n; 1082 string Alias = alias; 1083} 1084 1085// FeatureFuseAdrpAdd is enabled under Generic to allow linker merging 1086// optimizations. 1087def : ProcessorModel<"generic", CortexA510Model, ProcessorFeatures.Generic, 1088 [FeatureFuseAES, FeatureFuseAdrpAdd, FeaturePostRAScheduler, 1089 FeatureEnableSelectOptimize]>; 1090def : ProcessorModel<"cortex-a35", CortexA53Model, ProcessorFeatures.A53, 1091 [TuneA35]>; 1092def : ProcessorModel<"cortex-a34", CortexA53Model, ProcessorFeatures.A53, 1093 [TuneA35]>; 1094def : ProcessorModel<"cortex-a53", CortexA53Model, ProcessorFeatures.A53, 1095 [TuneA53]>; 1096def : ProcessorModel<"cortex-a55", CortexA55Model, ProcessorFeatures.A55, 1097 [TuneA55]>; 1098def : ProcessorModel<"cortex-a510", CortexA510Model, ProcessorFeatures.A510, 1099 [TuneA510]>; 1100def : ProcessorModel<"cortex-a520", CortexA510Model, ProcessorFeatures.A520, 1101 [TuneA520]>; 1102def : ProcessorModel<"cortex-a520ae", CortexA510Model, ProcessorFeatures.A520AE, 1103 [TuneA520AE]>; 1104def : ProcessorModel<"cortex-a57", CortexA57Model, ProcessorFeatures.A53, 1105 [TuneA57]>; 1106def : ProcessorModel<"cortex-a65", CortexA53Model, ProcessorFeatures.A65, 1107 [TuneA65]>; 1108def : ProcessorModel<"cortex-a65ae", CortexA53Model, ProcessorFeatures.A65, 1109 [TuneA65]>; 1110def : ProcessorModel<"cortex-a72", CortexA57Model, ProcessorFeatures.A53, 1111 [TuneA72]>; 1112def : ProcessorModel<"cortex-a73", CortexA57Model, ProcessorFeatures.A53, 1113 [TuneA73]>; 1114def : ProcessorModel<"cortex-a75", CortexA57Model, ProcessorFeatures.A55, 1115 [TuneA75]>; 1116def : ProcessorModel<"cortex-a76", CortexA57Model, ProcessorFeatures.A76, 1117 [TuneA76]>; 1118def : ProcessorModel<"cortex-a76ae", CortexA57Model, ProcessorFeatures.A76, 1119 [TuneA76]>; 1120def : ProcessorModel<"cortex-a77", CortexA57Model, ProcessorFeatures.A77, 1121 [TuneA77]>; 1122def : ProcessorModel<"cortex-a78", CortexA57Model, ProcessorFeatures.A78, 1123 [TuneA78]>; 1124def : ProcessorModel<"cortex-a78ae", CortexA57Model, ProcessorFeatures.A78AE, 1125 [TuneA78AE]>; 1126def : ProcessorModel<"cortex-a78c", CortexA57Model, ProcessorFeatures.A78C, 1127 [TuneA78C]>; 1128def : ProcessorModel<"cortex-a710", NeoverseN2Model, ProcessorFeatures.A710, 1129 [TuneA710]>; 1130def : ProcessorModel<"cortex-a715", NeoverseN2Model, ProcessorFeatures.A715, 1131 [TuneA715]>; 1132def : ProcessorModel<"cortex-a720", NeoverseN2Model, ProcessorFeatures.A720, 1133 [TuneA720]>; 1134def : ProcessorModel<"cortex-a720ae", NeoverseN2Model, ProcessorFeatures.A720AE, 1135 [TuneA720AE]>; 1136def : ProcessorModel<"cortex-a725", NeoverseN3Model, ProcessorFeatures.A725, 1137 [TuneA725]>; 1138def : ProcessorModel<"cortex-r82", CortexA55Model, ProcessorFeatures.R82, 1139 [TuneR82]>; 1140def : ProcessorModel<"cortex-r82ae", CortexA55Model, ProcessorFeatures.R82AE, 1141 [TuneR82AE]>; 1142def : ProcessorModel<"cortex-x1", NeoverseV1Model, ProcessorFeatures.X1, 1143 [TuneX1]>; 1144def : ProcessorModel<"cortex-x1c", NeoverseV1Model, ProcessorFeatures.X1C, 1145 [TuneX1]>; 1146def : ProcessorModel<"cortex-x2", NeoverseV2Model, ProcessorFeatures.X2, 1147 [TuneX2]>; 1148def : ProcessorModel<"cortex-x3", NeoverseV2Model, ProcessorFeatures.X3, 1149 [TuneX3]>; 1150def : ProcessorModel<"cortex-x4", NeoverseV2Model, ProcessorFeatures.X4, 1151 [TuneX4]>; 1152def : ProcessorModel<"cortex-x925", NeoverseV2Model, ProcessorFeatures.X925, 1153 [TuneX925]>; 1154def : ProcessorModel<"neoverse-e1", CortexA53Model, 1155 ProcessorFeatures.NeoverseE1, [TuneNeoverseE1]>; 1156def : ProcessorModel<"neoverse-n1", NeoverseN1Model, 1157 ProcessorFeatures.NeoverseN1, [TuneNeoverseN1]>; 1158def : ProcessorModel<"neoverse-n2", NeoverseN2Model, 1159 ProcessorFeatures.NeoverseN2, [TuneNeoverseN2]>; 1160def : ProcessorAlias<"cobalt-100", "neoverse-n2">; 1161def : ProcessorModel<"neoverse-n3", NeoverseN3Model, 1162 ProcessorFeatures.NeoverseN3, [TuneNeoverseN3]>; 1163def : ProcessorModel<"neoverse-512tvb", NeoverseV1Model, 1164 ProcessorFeatures.Neoverse512TVB, [TuneNeoverse512TVB]>; 1165def : ProcessorModel<"neoverse-v1", NeoverseV1Model, 1166 ProcessorFeatures.NeoverseV1, [TuneNeoverseV1]>; 1167def : ProcessorModel<"neoverse-v2", NeoverseV2Model, 1168 ProcessorFeatures.NeoverseV2, [TuneNeoverseV2]>; 1169def : ProcessorAlias<"grace", "neoverse-v2">; 1170def : ProcessorModel<"neoverse-v3", NeoverseV2Model, 1171 ProcessorFeatures.NeoverseV3, [TuneNeoverseV3]>; 1172def : ProcessorModel<"neoverse-v3ae", NeoverseV2Model, 1173 ProcessorFeatures.NeoverseV3AE, [TuneNeoverseV3AE]>; 1174def : ProcessorModel<"exynos-m3", ExynosM3Model, ProcessorFeatures.ExynosM3, 1175 [TuneExynosM3]>; 1176def : ProcessorModel<"exynos-m4", ExynosM4Model, ProcessorFeatures.ExynosM4, 1177 [TuneExynosM4]>; 1178def : ProcessorModel<"exynos-m5", ExynosM5Model, ProcessorFeatures.ExynosM4, 1179 [TuneExynosM4]>; 1180def : ProcessorModel<"falkor", FalkorModel, ProcessorFeatures.Falkor, 1181 [TuneFalkor]>; 1182def : ProcessorModel<"saphira", FalkorModel, ProcessorFeatures.Saphira, 1183 [TuneSaphira]>; 1184def : ProcessorModel<"kryo", KryoModel, ProcessorFeatures.A53, [TuneKryo]>; 1185 1186// Cavium ThunderX/ThunderX T8X Processors 1187def : ProcessorModel<"thunderx", ThunderXT8XModel, ProcessorFeatures.ThunderX, 1188 [TuneThunderX]>; 1189def : ProcessorModel<"thunderxt88", ThunderXT8XModel, 1190 ProcessorFeatures.ThunderX, [TuneThunderXT88]>; 1191def : ProcessorModel<"thunderxt81", ThunderXT8XModel, 1192 ProcessorFeatures.ThunderX, [TuneThunderXT81]>; 1193def : ProcessorModel<"thunderxt83", ThunderXT8XModel, 1194 ProcessorFeatures.ThunderX, [TuneThunderXT83]>; 1195// Cavium ThunderX2T9X Processors. Formerly Broadcom Vulcan. 1196def : ProcessorModel<"thunderx2t99", ThunderX2T99Model, 1197 ProcessorFeatures.ThunderX2T99, [TuneThunderX2T99]>; 1198// Marvell ThunderX3T110 Processors. 1199def : ProcessorModel<"thunderx3t110", ThunderX3T110Model, 1200 ProcessorFeatures.ThunderX3T110, [TuneThunderX3T110]>; 1201def : ProcessorModel<"tsv110", TSV110Model, ProcessorFeatures.TSV110, 1202 [TuneTSV110]>; 1203 1204 1205// Apple CPUs 1206 1207def : ProcessorModel<"apple-a7", CycloneModel, ProcessorFeatures.AppleA7, 1208 [TuneAppleA7]>; 1209// Support cyclone as an alias for apple-a7 so we can still LTO old bitcode. 1210def : ProcessorAlias<"cyclone", "apple-a7">; 1211def : ProcessorAlias<"apple-a8", "apple-a7">; 1212def : ProcessorAlias<"apple-a9", "apple-a7">; 1213 1214def : ProcessorModel<"apple-a10", CycloneModel, ProcessorFeatures.AppleA10, 1215 [TuneAppleA10]>; 1216 1217def : ProcessorModel<"apple-a11", CycloneModel, ProcessorFeatures.AppleA11, 1218 [TuneAppleA11]>; 1219 1220def : ProcessorModel<"apple-a12", CycloneModel, ProcessorFeatures.AppleA12, 1221 [TuneAppleA12]>; 1222def : ProcessorAlias<"apple-s4", "apple-a12">; 1223def : ProcessorAlias<"apple-s5", "apple-a12">; 1224 1225def : ProcessorModel<"apple-a13", CycloneModel, ProcessorFeatures.AppleA13, 1226 [TuneAppleA13]>; 1227 1228def : ProcessorModel<"apple-a14", CycloneModel, ProcessorFeatures.AppleA14, 1229 [TuneAppleA14]>; 1230def : ProcessorAlias<"apple-m1", "apple-a14">; 1231 1232def : ProcessorModel<"apple-a15", CycloneModel, ProcessorFeatures.AppleA15, 1233 [TuneAppleA15]>; 1234def : ProcessorAlias<"apple-m2", "apple-a15">; 1235 1236def : ProcessorModel<"apple-a16", CycloneModel, ProcessorFeatures.AppleA16, 1237 [TuneAppleA16]>; 1238def : ProcessorAlias<"apple-m3", "apple-a16">; 1239 1240def : ProcessorModel<"apple-a17", CycloneModel, ProcessorFeatures.AppleA17, 1241 [TuneAppleA17]>; 1242 1243def : ProcessorModel<"apple-m4", CycloneModel, ProcessorFeatures.AppleM4, 1244 [TuneAppleM4]>; 1245 1246// Alias for the latest Apple processor model supported by LLVM. 1247def : ProcessorAlias<"apple-latest", "apple-m4">; 1248 1249 1250// Fujitsu A64FX 1251def : ProcessorModel<"a64fx", A64FXModel, ProcessorFeatures.A64FX, 1252 [TuneA64FX]>; 1253 1254// Fujitsu FUJITSU-MONAKA 1255def : ProcessorModel<"fujitsu-monaka", A64FXModel, ProcessorFeatures.MONAKA, 1256 [TuneMONAKA]>; 1257 1258// Nvidia Carmel 1259def : ProcessorModel<"carmel", NoSchedModel, ProcessorFeatures.Carmel, 1260 [TuneCarmel]>; 1261 1262// Ampere Computing 1263def : ProcessorModel<"ampere1", Ampere1Model, ProcessorFeatures.Ampere1, 1264 [TuneAmpere1]>; 1265 1266def : ProcessorModel<"ampere1a", Ampere1Model, ProcessorFeatures.Ampere1A, 1267 [TuneAmpere1A]>; 1268 1269def : ProcessorModel<"ampere1b", Ampere1BModel, ProcessorFeatures.Ampere1B, 1270 [TuneAmpere1B]>; 1271 1272// Qualcomm Oryon 1273def : ProcessorModel<"oryon-1", OryonModel, ProcessorFeatures.Oryon, 1274 [TuneOryon]>; 1275