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/SelectionDAG.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/SelectionDAG.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 23 |
1 files changed, 1 insertions, 22 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index c5ef77a3195..f75d5f4b2bd 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -1513,10 +1513,9 @@ SDValue SelectionDAG::getVectorShuffle(EVT VT, SDLoc dl, SDValue N1, return getUNDEF(VT); // If Identity shuffle return that node. - bool Identity = true, AllSame = true; + bool Identity = true; for (unsigned i = 0; i != NElts; ++i) { if (MaskVec[i] >= 0 && MaskVec[i] != (int)i) Identity = false; - if (MaskVec[i] != MaskVec[0]) AllSame = false; } if (Identity && NElts) return N1; @@ -1550,26 +1549,6 @@ SDValue SelectionDAG::getVectorShuffle(EVT VT, SDLoc dl, SDValue N1, if (C->isNullValue()) return N1; } - - // If the shuffle itself creates a constant splat, build the vector - // directly. - if (AllSame) { - const SDValue &Splatted = BV->getOperand(MaskVec[0]); - if (isa<ConstantSDNode>(Splatted) || isa<ConstantFPSDNode>(Splatted)) { - SmallVector<SDValue, 8> Ops; - for (unsigned i = 0; i != NElts; ++i) { - Ops.push_back(Splatted); - } - SDValue &NewBV = getNode(ISD::BUILD_VECTOR, dl, - BV->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 (BV->getValueType(0) != VT) - NewBV = getNode(ISD::BITCAST, dl, VT, NewBV); - return NewBV; - } - } } } |

