diff options
author | Michael Kuperstein <michael.m.kuperstein@intel.com> | 2015-01-22 12:48:07 +0000 |
---|---|---|
committer | Michael Kuperstein <michael.m.kuperstein@intel.com> | 2015-01-22 12:48:07 +0000 |
commit | ff74032018da81f7e8429963d14e4b288098cb04 (patch) | |
tree | af025faea02668260b0b05d5a2a803a364c078e6 /llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp | |
parent | 0ab906ce1c96473675681f0f3781494313fd81a0 (diff) | |
download | bcm5719-llvm-ff74032018da81f7e8429963d14e4b288098cb04.tar.gz bcm5719-llvm-ff74032018da81f7e8429963d14e4b288098cb04.zip |
Revert r226811, MSVC accepts code sane compilers don't.
llvm-svn: 226814
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp index a9bcefc5cd2..a06f35ee937 100644 --- a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp @@ -11490,7 +11490,7 @@ SDValue DAGCombiner::visitVECTOR_SHUFFLE(SDNode *N) { } // If it is a splat, check if the argument vector is another splat or a - // build_vector. + // build_vector with all scalar elements the same. if (SVN->isSplat() && SVN->getSplatIndex() < (int)NumElts) { SDNode *V = N0.getNode(); @@ -11527,24 +11527,6 @@ SDValue DAGCombiner::visitVECTOR_SHUFFLE(SDNode *N) { // Splat of <x, x, x, x>, return <x, x, x, x> if (AllSame) return N0; - - // If the splatted element is a constant, just build the vector out of - // constants directly. - const SDValue &Splatted = V->getOperand(SVN->getSplatIndex()); - if (isa<ConstantSDNode>(Splatted) || isa<ConstantFPSDNode>(Splatted)) { - SmallVector<SDValue, 8> Ops; - for (unsigned i = 0; i != NumElts; ++i) { - Ops.push_back(Splatted); - } - SDValue &NewBV = DAG.getNode(ISD::BUILD_VECTOR, SDLoc(N), - V->getValueType(0), Ops); - - // We may have jumped through bitcasts, so the type of the - // BUILD_VECTOR may not match the type of the shuffle. - if (V->getValueType(0) != VT) - NewBV = DAG.getNode(ISD::BITCAST, SDLoc(N), VT, NewBV); - return NewBV; - } } } |