| Index: src/IceTargetLoweringX86BaseImpl.h
|
| diff --git a/src/IceTargetLoweringX86BaseImpl.h b/src/IceTargetLoweringX86BaseImpl.h
|
| index ebdfb1e86b7e94dc86c2ad4f413da5dc754a41a0..6ee9ef942a3f8b8b04cb44a1921623347b6553a5 100644
|
| --- a/src/IceTargetLoweringX86BaseImpl.h
|
| +++ b/src/IceTargetLoweringX86BaseImpl.h
|
| @@ -1603,11 +1603,17 @@ void TargetX86Base<Machine>::lowerArithmetic(const InstArithmetic *Inst) {
|
| if (isByteSizedArithType(Dest->getType())) {
|
| _mov(T, Src0, Traits::RegisterSet::Reg_eax);
|
| Src1 = legalize(Src1, Legal_Reg | Legal_Mem);
|
| + _imul(T, Src1);
|
| + _mov(Dest, T);
|
| + } else if (auto *ImmConst = llvm::dyn_cast<ConstantInteger32>(Src1)) {
|
| + T = makeReg(Dest->getType());
|
| + _imul_imm(T, Src0, ImmConst);
|
| + _mov(Dest, T);
|
| } else {
|
| _mov(T, Src0);
|
| + _imul(T, Src1);
|
| + _mov(Dest, T);
|
| }
|
| - _imul(T, Src1);
|
| - _mov(Dest, T);
|
| break;
|
| case InstArithmetic::Shl:
|
| _mov(T, Src0);
|
|
|