diff options
| author | Craig Topper <craig.topper@intel.com> | 2018-07-25 05:33:36 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2018-07-25 05:33:36 +0000 |
| commit | dc0e8a601dae520e6f05cd18b7dc88b6aaf9ebe1 (patch) | |
| tree | 39f46ecc0f530f88f793c377eba13716e2ea4f40 /llvm/lib | |
| parent | d9fa8147c4a0d8351f4a2e65803f1f354ca4f56b (diff) | |
| download | bcm5719-llvm-dc0e8a601dae520e6f05cd18b7dc88b6aaf9ebe1.tar.gz bcm5719-llvm-dc0e8a601dae520e6f05cd18b7dc88b6aaf9ebe1.zip | |
[X86] Use X86ISD::MUL_IMM instead of ISD::MUL for multiply we intend to be selected to LEA.
This prevents other combines from possibly disturbing it.
llvm-svn: 337890
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index c7deffd5619..e019fbdfa1a 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -33701,7 +33701,8 @@ static SDValue combineMulSpecial(uint64_t MulAmt, SDNode *N, SelectionDAG &DAG, auto combineMulMulAddOrSub = [&](int Mul1, int Mul2, bool isAdd) { SDValue Result = DAG.getNode(X86ISD::MUL_IMM, DL, VT, N->getOperand(0), DAG.getConstant(Mul1, DL, VT)); - Result = DAG.getNode(ISD::MUL, DL, VT, Result, DAG.getConstant(Mul2, DL, VT)); + Result = DAG.getNode(X86ISD::MUL_IMM, DL, VT, Result, + DAG.getConstant(Mul2, DL, VT)); Result = DAG.getNode(isAdd ? ISD::ADD : ISD::SUB, DL, VT, Result, N->getOperand(0)); return Result; |

