[AArch64][SVE] Fold vselect into predicated fmul, fsub and fadd
authorMatt Devereau <matthew.devereau@arm.com>
Wed, 19 Jan 2022 16:30:29 +0000 (16:30 +0000)
committerMatt Devereau <matthew.devereau@arm.com>
Thu, 3 Feb 2022 13:43:15 +0000 (13:43 +0000)
commit1c6dca96caeeb498c02f665bc55428d6f1c0edb2
tree4c85551724dd3150aa8fbec3b3f6d97f47ec4029
parent089d9c50b29e8e0eb18884edf17451e11a84a80f
[AArch64][SVE] Fold vselect into predicated fmul, fsub and fadd

Fold vselect with an unpredicated fmul/fsub/fadd
operand into a predicated fmul/fsub/fadd:

(vselect (p) (op (a) (b)) (a)) => (op -> (p) (a) (b))

Differential Revision: https://reviews.llvm.org/D117689
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/lib/Target/AArch64/SVEInstrFormats.td
llvm/test/CodeGen/AArch64/sve-fp-vselect.ll [new file with mode: 0644]