summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2018-07-25 05:33:36 +0000
committerCraig Topper <craig.topper@intel.com>2018-07-25 05:33:36 +0000
commitdc0e8a601dae520e6f05cd18b7dc88b6aaf9ebe1 (patch)
tree39f46ecc0f530f88f793c377eba13716e2ea4f40 /llvm/lib
parentd9fa8147c4a0d8351f4a2e65803f1f354ca4f56b (diff)
downloadbcm5719-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.cpp3
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;
OpenPOWER on IntegriCloud