The LoopLoadElim pass effectively didn't work in the new PM,
because unlike the old pass manager, it never bothered to simplify loops
before it starts working. As result, at some point it tried to get a loop
preheader, and it might not exist, which lead to crash (fixed as D77775).
Old pass manager, on other hand, was requesting simplification of all
loops before the run, potentially doing redundant work.
This patch unifies operation in both pass managers. Now neither of them
requests simplification of all loops before the run. Instead, it simplifies
loop by itself when it thinks it's necessary.
It also enables all tests run in both pipelines and makes sure they
produce equivalent results.