[llvm] [Xtensa] Fix S32C1I instruction encoding and copyPhysReg. (PR #165174)
Andrei Safronov via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 30 10:33:55 PDT 2025
================
@@ -114,14 +114,28 @@ void XtensaInstrInfo::copyPhysReg(MachineBasicBlock &MBB,
const DebugLoc &DL, Register DestReg,
Register SrcReg, bool KillSrc,
bool RenamableDest, bool RenamableSrc) const {
- // The MOV instruction is not present in core ISA,
- // so use OR instruction.
- if (Xtensa::ARRegClass.contains(DestReg, SrcReg))
+ unsigned Opcode;
+
+ // when we are copying a phys reg we want the bits for fp
+ if (Xtensa::ARRegClass.contains(DestReg, SrcReg)) {
BuildMI(MBB, MBBI, DL, get(Xtensa::OR), DestReg)
.addReg(SrcReg, getKillRegState(KillSrc))
.addReg(SrcReg, getKillRegState(KillSrc));
+ return;
+ } else if (STI.hasSingleFloat() && Xtensa::FPRRegClass.contains(SrcReg) &&
----------------
andreisfr wrote:
Thank you very much for your comments. Fixed.
I added tests.
https://github.com/llvm/llvm-project/pull/165174
More information about the llvm-commits
mailing list