[llvm] [AArch64] Use 0-cycle reg2reg MOVs for FPR32, FPR16, FPR8 (PR #144152)
Tomer Shafir via llvm-commits
llvm-commits at lists.llvm.org
Sun Jun 22 01:36:47 PDT 2025
================
@@ -5302,30 +5302,73 @@ void AArch64InstrInfo::copyPhysReg(MachineBasicBlock &MBB,
if (AArch64::FPR32RegClass.contains(DestReg) &&
AArch64::FPR32RegClass.contains(SrcReg)) {
- BuildMI(MBB, I, DL, get(AArch64::FMOVSr), DestReg)
- .addReg(SrcReg, getKillRegState(KillSrc));
+ if (Subtarget.isTargetDarwin() && Subtarget.hasZeroCycleRegMove()) {
----------------
tomershafir wrote:
I agree. Ill add new subtarget features, though per register class and not underlying register names, like `hasZeroCycleRegMoveFPR64`.
https://github.com/llvm/llvm-project/pull/144152
More information about the llvm-commits
mailing list