[X86] Update (p)haddsub undef element tests to match the output IR from the middle-end (#207244)
Use the vectorised output from the PhaseOrdering/X86 hadd.ll tests -
I've added test coverage for multiple SSE/AVX levels for cases where the
middle-end output is different for any level.
This exposes a number of regressions that have been there for some time
but we'd missed as we'd assumed the backend would still be receiving
non-vectorised IR, but there's been plenty of changes to SLP,
InstCombine and VectorCombine since then - end2end tests would have been
very useful here :(
Looking at fixes next before finally removing the (dead) scalar hadd
matching code for #143000