diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2019-06-19 11:31:26 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2019-06-19 11:31:26 +0000 |
| commit | bb6b85618387f768a6368f289ae754eb92935c5d (patch) | |
| tree | 57a97f40b6410be6dee7ed4491b76bcea0d33271 /llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp | |
| parent | 122bd782d644b998e2848e5ea4431745840c72c1 (diff) | |
| download | bcm5719-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/SelectionDAG/DAGCombiner.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp | 12 |
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, |

