diff --git a/lib/Target/X86/X86InstrInfo.cpp b/lib/Target/X86/X86InstrInfo.cpp index 91cec989469..acd214ed0ac 100644 --- a/lib/Target/X86/X86InstrInfo.cpp +++ b/lib/Target/X86/X86InstrInfo.cpp @@ -1932,7 +1932,9 @@ bool X86InstrInfo::copyRegToReg(MachineBasicBlock &MBB, } else if (CommonRC == &X86::GR8RegClass) { // Copying to or from a physical H register on x86-64 requires a NOREX // move. Otherwise use a normal move. - if ((isHReg(DestReg) || isHReg(SrcReg)) && + if ((isHReg(DestReg) || isHReg(SrcReg) || + SrcRC == &X86::GR8_ABCD_HRegClass || + DestRC == &X86::GR8_ABCD_HRegClass) && TM.getSubtarget().is64Bit()) Opc = X86::MOV8rr_NOREX; else