HomePhabricator

[RISCV] Add scalable vector fcmp ISel patterns

Authored by frasercrmck on Jan 6 2021, 3:25 AM.

Description

[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
splatting fpimm0.

Authored-by: Roger Ferrer Ibanez <rofirrim@gmail.com>
Co-Authored-by: Fraser Cormack <fraser@codeplay.com>

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D94242

Details

Committed
frasercrmckJan 11 2021, 11:38 AM
Reviewer
craig.topper
Differential Revision
D94242: [RISCV] Add scalable vector fcmp ISel patterns
Parents
rG195728c75aa4: [mlir] Add structural conversion to async dialect lowering.
Branches
Unknown
Tags
Unknown