[AArch64][SVE] Add patterns to select masked FP arith
Add patterns to select predicated instructions when lowering: fadd(a, select(mask, b, splat(0))) fsub(a, select(mask, b, splat(0))) 'fadd' is unsafe unless no-signed zeros fast-math flag is set, since -0.0 + 0.0 = 0.0 changes the sign. Alive2: https://alive2.llvm.org/ce/z/wbhJh_ Also adds FMA patterns for: fadd(a, select(mask, mul(b, c), splat(0))) -> fmla(a, mask, b, c) fsub(a, select(mask, mul(b, c), splat(0))) -> fmla(a, mask, b, c) These patterns require the 'contract' fast-math flag to be set, and the fadd 'nsz' as above. Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D130564
Loading
Please sign in to comment