D11924 implemented part of the floating-point comparisons, this patch implements the rest:
- Tell ISelLowering that all booleans are either 0 or 1.
- Expand the eq/ne/lt/le/gt/ge floating-point comparisons to the canonical ones (similar to what Mips32r6InstrInfo.td does).
- Add tests for ord/uno.
- Add tests for ueq/one/ult/ule/ugt/uge.
- Fix existing comparison tests to remove the (res & 1) code, which setBooleanContents stops from generating.
"32-bit" is clear from the code so isn't really critical to have in a comment. The thing not immediately obvious is that these are the "don't care" operators, and what's happening here is that we're mapping "don't care" operators onto supported operators.