diff options
Diffstat (limited to 'llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp')
-rw-r--r-- | llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp b/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp index a6fb5ab0..8a32d99 100644 --- a/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp +++ b/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp @@ -983,6 +983,12 @@ void SystemZInstrInfo::copyPhysReg(MachineBasicBlock &MBB, Opcode = SystemZ::VLR; else if (SystemZ::AR32BitRegClass.contains(DestReg, SrcReg)) Opcode = SystemZ::CPYA; + else if (SystemZ::GR64BitRegClass.contains(DestReg) && + SystemZ::FP64BitRegClass.contains(SrcReg)) + Opcode = SystemZ::LGDR; + else if (SystemZ::FP64BitRegClass.contains(DestReg) && + SystemZ::GR64BitRegClass.contains(SrcReg)) + Opcode = SystemZ::LDGR; else llvm_unreachable("Impossible reg-to-reg copy"); |