diff --git a/lib/Target/X86/X86ISelSimple.cpp b/lib/Target/X86/X86ISelSimple.cpp index e5cf618fc10..37572aaefd4 100644 --- a/lib/Target/X86/X86ISelSimple.cpp +++ b/lib/Target/X86/X86ISelSimple.cpp @@ -2925,7 +2925,7 @@ void X86ISel::emitShiftOperation(MachineBasicBlock *MBB, // if (ConstantUInt *CUI = dyn_cast(ShiftAmount)) { unsigned Amount = CUI->getValue(); - if (Amount == 1) { // X << 1 == X+X + if (Amount == 1 && isLeftShift) { // X << 1 == X+X BuildMI(*MBB, IP, X86::ADD32rr, 2, DestReg).addReg(SrcReg).addReg(SrcReg); BuildMI(*MBB, IP, X86::ADC32rr, 2,