NewGVN: Handle equivalence between phi of ops and op of phis.
This makes our GVN mostly-complete. It would be complete, modulo some
deliberate choices we make. This means it detects roughly all herband
equivalences in polynomial time, including cases notoriously hard for
other GVN's to detect. It also detects a very large swath of the
cases we currently rely on instcombine to detect that involve folding
upwards through phis.
I am still doing benchmarking, tweaking, and testing. on our current
approach, but this was getting large enough to throw up here.
Fixes PR 31125, 31463, PR 31868
member initialization instead? (bool AllRealOps = false;)