If all the demanded elements of the SimplifyDemandedVectorElts are known to be undef we can simplify to an ISD::UNDEF node.
This exposes an issue with a recursive DAGCombiner::visitINSERT_SUBVECTOR call if the inner node deletes a node then the outer depends upon. I've only been able to expose this with the SimplifyDemandedVectorElts change so will keep it as part of this patch (I'm happy to submit it as a pre-commit however - it causes no lit test changes so seems pretty superfluous).
ZERO constant folding will handled in a future patch - its a little trickier as we often have bitcasted zero values.