diff options
Diffstat (limited to 'include/llvm/Support')
-rw-r--r-- | include/llvm/Support/PatternMatch.h | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/include/llvm/Support/PatternMatch.h b/include/llvm/Support/PatternMatch.h index f0acbcb..97e9b5f 100644 --- a/include/llvm/Support/PatternMatch.h +++ b/include/llvm/Support/PatternMatch.h @@ -306,37 +306,6 @@ m_FCmp(FCmpInst::Predicate &Pred, const LHS &L, const RHS &R) { // template<typename LHS_t> -struct neg_match { - LHS_t L; - - neg_match(const LHS_t &LHS) : L(LHS) {} - - template<typename OpTy> - bool match(OpTy *V) { - if (Instruction *I = dyn_cast<Instruction>(V)) - if (I->getOpcode() == Instruction::Sub) - return matchIfNeg(I->getOperand(0), I->getOperand(1)); - if (ConstantExpr *CE = dyn_cast<ConstantExpr>(V)) - if (CE->getOpcode() == Instruction::Sub) - return matchIfNeg(CE->getOperand(0), CE->getOperand(1)); - if (ConstantInt *CI = dyn_cast<ConstantInt>(V)) - return L.match(ConstantExpr::getNeg(CI)); - return false; - } -private: - bool matchIfNeg(Value *LHS, Value *RHS) { - if (!LHS->getType()->isFloatingPoint()) - return LHS == Constant::getNullValue(LHS->getType()) && L.match(RHS); - else - return LHS == ConstantFP::get(LHS->getType(), -0.0) && L.match(RHS); - } -}; - -template<typename LHS> -inline neg_match<LHS> m_Neg(const LHS &L) { return L; } - - -template<typename LHS_t> struct not_match { LHS_t L; |