Skip to content

Commit 82e75a4

Browse files
committed
[AArch64] Add FeatureZCRegMoveFPR128 subtarget feature
Adds a subtarget feature called FeatureZCRegMoveFPR128 that enables to query wether the target supports zero cycle reg move for FPR128 NEON registers, and embeds it into the appropriate processors. Its a preparation for future optimizations.
1 parent 09ff631 commit 82e75a4

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

llvm/lib/Target/AArch64/AArch64Features.td

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,9 @@ def FeatureZCRegMoveGPR64 : SubtargetFeature<"zcm-gpr64", "HasZeroCycleRegMoveGP
621621
def FeatureZCRegMoveGPR32 : SubtargetFeature<"zcm-gpr32", "HasZeroCycleRegMoveGPR32", "true",
622622
"Has zero-cycle register moves for GPR32 registers">;
623623

624+
def FeatureZCRegMoveFPR128 : SubtargetFeature<"zcm-fpr128", "HasZeroCycleRegMoveFPR128", "true",
625+
"Has zero-cycle register moves for FPR128 registers">;
626+
624627
def FeatureZCRegMoveFPR64 : SubtargetFeature<"zcm-fpr64", "HasZeroCycleRegMoveFPR64", "true",
625628
"Has zero-cycle register moves for FPR64 registers">;
626629

llvm/lib/Target/AArch64/AArch64Processors.td

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,7 @@ def TuneAppleA7 : SubtargetFeature<"apple-a7", "ARMProcFamily", "AppleA7",
321321
FeatureFuseAES, FeatureFuseCryptoEOR,
322322
FeatureStorePairSuppress,
323323
FeatureZCRegMoveGPR64,
324+
FeatureZCRegMoveFPR128,
324325
FeatureZCRegMoveFPR64,
325326
FeatureZCZeroing,
326327
FeatureZCZeroingFPWorkaround]>;
@@ -335,6 +336,7 @@ def TuneAppleA10 : SubtargetFeature<"apple-a10", "ARMProcFamily", "AppleA10",
335336
FeatureFuseCryptoEOR,
336337
FeatureStorePairSuppress,
337338
FeatureZCRegMoveGPR64,
339+
FeatureZCRegMoveFPR128,
338340
FeatureZCRegMoveFPR64,
339341
FeatureZCZeroing]>;
340342

@@ -348,6 +350,7 @@ def TuneAppleA11 : SubtargetFeature<"apple-a11", "ARMProcFamily", "AppleA11",
348350
FeatureFuseCryptoEOR,
349351
FeatureStorePairSuppress,
350352
FeatureZCRegMoveGPR64,
353+
FeatureZCRegMoveFPR128,
351354
FeatureZCRegMoveFPR64,
352355
FeatureZCZeroing]>;
353356

@@ -361,6 +364,7 @@ def TuneAppleA12 : SubtargetFeature<"apple-a12", "ARMProcFamily", "AppleA12",
361364
FeatureFuseCryptoEOR,
362365
FeatureStorePairSuppress,
363366
FeatureZCRegMoveGPR64,
367+
FeatureZCRegMoveFPR128,
364368
FeatureZCRegMoveFPR64,
365369
FeatureZCZeroing]>;
366370

@@ -374,6 +378,7 @@ def TuneAppleA13 : SubtargetFeature<"apple-a13", "ARMProcFamily", "AppleA13",
374378
FeatureFuseCryptoEOR,
375379
FeatureStorePairSuppress,
376380
FeatureZCRegMoveGPR64,
381+
FeatureZCRegMoveFPR128,
377382
FeatureZCRegMoveFPR64,
378383
FeatureZCZeroing]>;
379384

@@ -392,6 +397,7 @@ def TuneAppleA14 : SubtargetFeature<"apple-a14", "ARMProcFamily", "AppleA14",
392397
FeatureFuseLiterals,
393398
FeatureStorePairSuppress,
394399
FeatureZCRegMoveGPR64,
400+
FeatureZCRegMoveFPR128,
395401
FeatureZCRegMoveFPR64,
396402
FeatureZCZeroing]>;
397403

@@ -410,6 +416,7 @@ def TuneAppleA15 : SubtargetFeature<"apple-a15", "ARMProcFamily", "AppleA15",
410416
FeatureFuseLiterals,
411417
FeatureStorePairSuppress,
412418
FeatureZCRegMoveGPR64,
419+
FeatureZCRegMoveFPR128,
413420
FeatureZCRegMoveFPR64,
414421
FeatureZCZeroing]>;
415422

@@ -428,6 +435,7 @@ def TuneAppleA16 : SubtargetFeature<"apple-a16", "ARMProcFamily", "AppleA16",
428435
FeatureFuseLiterals,
429436
FeatureStorePairSuppress,
430437
FeatureZCRegMoveGPR64,
438+
FeatureZCRegMoveFPR128,
431439
FeatureZCRegMoveFPR64,
432440
FeatureZCZeroing]>;
433441

@@ -446,6 +454,7 @@ def TuneAppleA17 : SubtargetFeature<"apple-a17", "ARMProcFamily", "AppleA17",
446454
FeatureFuseLiterals,
447455
FeatureStorePairSuppress,
448456
FeatureZCRegMoveGPR64,
457+
FeatureZCRegMoveFPR128,
449458
FeatureZCRegMoveFPR64,
450459
FeatureZCZeroing]>;
451460

@@ -463,6 +472,7 @@ def TuneAppleM4 : SubtargetFeature<"apple-m4", "ARMProcFamily", "AppleM4",
463472
FeatureFuseCryptoEOR,
464473
FeatureFuseLiterals,
465474
FeatureZCRegMoveGPR64,
475+
FeatureZCRegMoveFPR128,
466476
FeatureZCRegMoveFPR64,
467477
FeatureZCZeroing
468478
]>;

0 commit comments

Comments
 (0)