As discussed on D55511, this caused an issue if the inner node deletes a node that the outer node depends upon. As it doesn't affect any lit-tests and I've only been able to expose this with the D55511 change I'm committing this now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@348781
91177308-0d34-0410-b5e6-
96231b3b80d8
if (N1.isUndef())
return N0;
- // For nested INSERT_SUBVECTORs, attempt to combine inner node first to allow
- // us to pull BITCASTs from input to output.
- if (N0.hasOneUse() && N0->getOpcode() == ISD::INSERT_SUBVECTOR)
- if (SDValue NN0 = visitINSERT_SUBVECTOR(N0.getNode()))
- return DAG.getNode(ISD::INSERT_SUBVECTOR, SDLoc(N), VT, NN0, N1, N2);
-
// If this is an insert of an extracted vector into an undef vector, we can
// just use the input to the extract.
if (N0.isUndef() && N1.getOpcode() == ISD::EXTRACT_SUBVECTOR &&