summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2010-01-05 22:39:10 +0000
committerBill Wendling <isanbard@gmail.com>2010-01-05 22:39:10 +0000
commit03f0af372c521a9260faf9fe42c00710fbb0bc50 (patch)
tree1b8c45c840fed1fa89fb4202e1e6b078067e2c90 /llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
parent567945636f3254b27d96d2018ae41053f2490d98 (diff)
downloadbcm5719-llvm-03f0af372c521a9260faf9fe42c00710fbb0bc50.tar.gz
bcm5719-llvm-03f0af372c521a9260faf9fe42c00710fbb0bc50.zip
Don't assign the shift the same type as the variable being shifted. This could
result in illegal types for the SHL operator. llvm-svn: 92797
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
index d50bb7b9f91..759fa0e1125 100644
--- a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
@@ -3322,7 +3322,9 @@ SDValue DAGCombiner::visitZERO_EXTEND(SDNode *N) {
DebugLoc dl = N->getDebugLoc();
return DAG.getNode(N0.getOpcode(), dl, VT,
DAG.getNode(ISD::ZERO_EXTEND, dl, VT, N0.getOperand(0)),
- DAG.getNode(ISD::ZERO_EXTEND, dl, VT, N0.getOperand(1)));
+ DAG.getNode(ISD::ZERO_EXTEND, dl,
+ N0.getOperand(1).getValueType(),
+ N0.getOperand(1)));
}
return SDValue();
OpenPOWER on IntegriCloud