reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
3010 if (match(&I, m_Not(m_OneUse(m_c_And(m_Not(m_Value(X)), m_Value(Y)))))) { 3012 return BinaryOperator::CreateOr(X, NotY); 3016 if (match(&I, m_Not(m_OneUse(m_c_Or(m_Not(m_Value(X)), m_Value(Y)))))) { 3018 return BinaryOperator::CreateAnd(X, NotY); 3045 if (match(NotVal, m_Sub(m_Value(X), m_Value(Y)))) 3046 if (isa<Constant>(X) || NotVal->hasOneUse()) 3047 return BinaryOperator::CreateAdd(Builder.CreateNot(X), Y); 3050 if (match(NotVal, m_AShr(m_Not(m_Value(X)), m_Value(Y)))) 3051 return BinaryOperator::CreateAShr(X, Y); 3070 if (match(Op0, m_Add(m_Value(X), m_Constant(C)))) 3071 return BinaryOperator::CreateSub(ConstantExpr::getNeg(AddOne(C)), X); 3078 if (match(Op0, m_OneUse(m_Or(m_Not(m_Value(X)), m_Constant(C2))))) { 3080 Value *And = Builder.CreateAnd(X, ConstantExpr::getNot(C2)); 3083 if (match(Op0, m_OneUse(m_And(m_Not(m_Value(X)), m_Constant(C2))))) { 3085 Value *Or = Builder.CreateOr(X, ConstantExpr::getNot(C2)); 3159 if (match(Op1, m_OneUse(m_c_Or(m_Value(X), m_Specific(Op0))))) 3160 return BinaryOperator::CreateAnd(X, Builder.CreateNot(Op0)); 3163 if (match(Op0, m_OneUse(m_c_Or(m_Value(X), m_Specific(Op1))))) 3164 return BinaryOperator::CreateAnd(X, Builder.CreateNot(Op1)); 3168 if (match(Op1, m_OneUse(m_c_And(m_Value(X), m_Specific(Op0))))) 3169 return BinaryOperator::CreateAnd(Op0, Builder.CreateNot(X)); 3176 match(Op0, m_OneUse(m_c_And(m_Value(X), m_Specific(Op1))))) 3177 return BinaryOperator::CreateAnd(Op1, Builder.CreateNot(X)); 3257 if (match(LHS, m_Not(m_Value(X))) && !isFreeToInvert(X, X->hasOneUse())) { 3257 if (match(LHS, m_Not(m_Value(X))) && !isFreeToInvert(X, X->hasOneUse())) { 3257 if (match(LHS, m_Not(m_Value(X))) && !isFreeToInvert(X, X->hasOneUse())) { 3260 Builder.CreateICmp(getInverseMinMaxPred(SPF), X, NotY), X, NotY); 3260 Builder.CreateICmp(getInverseMinMaxPred(SPF), X, NotY), X, NotY);