[RISCV] Add scalable vector fcmp ISel patterns
Original patch by @rogfer01.
All ordered comparisons except ONE are supported natively, and all
unordered comparisons except UNE are expanded into sequences involving
explicit NaN checks and mask arithmetic.
Additionally, we expand GT,OGT,GE,OGE to their swapped-operand versions, and
pattern-match those back to the "original", swapping operands once more. This
way we catch both operations and both "vf" and "fv" forms with fewer patterns.
Also add support for floating-point splat_vector, with an optimization for
Authored-by: Roger Ferrer Ibanez <firstname.lastname@example.org>
Co-Authored-by: Fraser Cormack <email@example.com>
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D94242