The original motivation for this patch comes from wanting to canonicalize more IR to selects and also canonicalizing min/max.
If we're going to do that, we need more backend fixups to undo select codegen when simpler ops will do. I chose AArch64 for the tests because that shows the difference in the simplest way. This should fix:
https://llvm.org/bugs/show_bug.cgi?id=31175