diff options
Diffstat (limited to 'llvm/include/llvm/IR/PatternMatch.h')
-rw-r--r-- | llvm/include/llvm/IR/PatternMatch.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/include/llvm/IR/PatternMatch.h b/llvm/include/llvm/IR/PatternMatch.h index 48b648f2b96..7c058342265 100644 --- a/llvm/include/llvm/IR/PatternMatch.h +++ b/llvm/include/llvm/IR/PatternMatch.h @@ -666,6 +666,13 @@ m_FNeg(const RHS &X) { return m_FSub(m_NegZeroFP(), X); } +/// Match 'fneg X' as 'fsub +-0.0, X'. +template <typename RHS> +inline BinaryOp_match<cstfp_pred_ty<is_any_zero_fp>, RHS, Instruction::FSub> +m_FNegNSZ(const RHS &X) { + return m_FSub(m_AnyZeroFP(), X); +} + template <typename LHS, typename RHS> inline BinaryOp_match<LHS, RHS, Instruction::Mul> m_Mul(const LHS &L, const RHS &R) { |