This is an alternative approach to fixing https://reviews.llvm.org/D93990#2666922
by teaching m_Undef to match vectors/aggrs with poison elements instead of hard-coding
it at SimplifyQuery::isUndefValue (D99853).
This patch also contains fixes in InstCombine files to use the m_Undef matcher instead
of isa<UndefValue>.
I'm not sure i like recursion here.
How about a worklist algorithm?