summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2019-06-19 11:31:26 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2019-06-19 11:31:26 +0000
commitbb6b85618387f768a6368f289ae754eb92935c5d (patch)
tree57a97f40b6410be6dee7ed4491b76bcea0d33271 /llvm/lib/CodeGen
parent122bd782d644b998e2848e5ea4431745840c72c1 (diff)
downloadbcm5719-llvm-bb6b85618387f768a6368f289ae754eb92935c5d.tar.gz
bcm5719-llvm-bb6b85618387f768a6368f289ae754eb92935c5d.zip
[DAGCombiner] visitSHL - pull out repeated shift amount VT. NFCI.
llvm-svn: 363789
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
index ebb79ef9e48..676cfbc859e 100644
--- a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
@@ -7126,6 +7126,7 @@ SDValue DAGCombiner::visitSHL(SDNode *N) {
return V;
EVT VT = N0.getValueType();
+ EVT ShiftVT = N1.getValueType();
unsigned OpSizeInBits = VT.getScalarSizeInBits();
// fold vector ops
@@ -7199,7 +7200,6 @@ SDValue DAGCombiner::visitSHL(SDNode *N) {
};
if (ISD::matchBinaryPredicate(N1, N0.getOperand(1), MatchInRange)) {
SDLoc DL(N);
- EVT ShiftVT = N1.getValueType();
SDValue Sum = DAG.getNode(ISD::ADD, DL, ShiftVT, N1, N0.getOperand(1));
return DAG.getNode(ISD::SHL, DL, VT, N0.getOperand(0), Sum);
}
@@ -7231,7 +7231,7 @@ SDValue DAGCombiner::visitSHL(SDNode *N) {
return DAG.getNode(
ISD::SHL, DL, VT,
DAG.getNode(N0.getOpcode(), DL, VT, N0Op0->getOperand(0)),
- DAG.getConstant(Sum.getZExtValue(), DL, N1.getValueType()));
+ DAG.getConstant(Sum.getZExtValue(), DL, ShiftVT));
}
}
}
@@ -7270,9 +7270,9 @@ SDValue DAGCombiner::visitSHL(SDNode *N) {
SDLoc DL(N);
if (C1 <= C2)
return DAG.getNode(ISD::SHL, DL, VT, N0.getOperand(0),
- DAG.getConstant(C2 - C1, DL, N1.getValueType()));
+ DAG.getConstant(C2 - C1, DL, ShiftVT));
return DAG.getNode(N0.getOpcode(), DL, VT, N0.getOperand(0),
- DAG.getConstant(C1 - C2, DL, N1.getValueType()));
+ DAG.getConstant(C1 - C2, DL, ShiftVT));
}
}
@@ -7294,12 +7294,12 @@ SDValue DAGCombiner::visitSHL(SDNode *N) {
Mask <<= c2 - c1;
SDLoc DL(N);
Shift = DAG.getNode(ISD::SHL, DL, VT, N0.getOperand(0),
- DAG.getConstant(c2 - c1, DL, N1.getValueType()));
+ DAG.getConstant(c2 - c1, DL, ShiftVT));
} else {
Mask.lshrInPlace(c1 - c2);
SDLoc DL(N);
Shift = DAG.getNode(ISD::SRL, DL, VT, N0.getOperand(0),
- DAG.getConstant(c1 - c2, DL, N1.getValueType()));
+ DAG.getConstant(c1 - c2, DL, ShiftVT));
}
SDLoc DL(N0);
return DAG.getNode(ISD::AND, DL, VT, Shift,
OpenPOWER on IntegriCloud