diff options
author | Mon P Wang <wangmp@apple.com> | 2010-11-19 19:08:12 +0000 |
---|---|---|
committer | Mon P Wang <wangmp@apple.com> | 2010-11-19 19:08:12 +0000 |
commit | cab98e3168558a40675a06bc830eb87b8e40070e (patch) | |
tree | b0a9820c8c15ed1ac1de6cdf0fb524e3b8a28aa7 /lib/CodeGen/SelectionDAG/SelectionDAG.cpp | |
parent | 805f105da0e15c3c63c5d5e9df0140d3421b4a55 (diff) |
Make isScalarToVector to return false if the node is a scalar. This will prevent
DAGCombine from making an illegal transformation of bitcast of a scalar to a
vector into a scalar_to_vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119819 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/SelectionDAG.cpp')
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index 08ef505bab..82a1746bb3 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -199,6 +199,8 @@ bool ISD::isScalarToVector(const SDNode *N) { if (N->getOperand(0).getOpcode() == ISD::UNDEF) return false; unsigned NumElems = N->getNumOperands(); + if (NumElems == 1) + return false; for (unsigned i = 1; i < NumElems; ++i) { SDValue V = N->getOperand(i); if (V.getOpcode() != ISD::UNDEF) |