reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
 3010   if (match(&I, m_Not(m_OneUse(m_c_And(m_Not(m_Value(X)), m_Value(Y)))))) {
 3011     Value *NotY = Builder.CreateNot(Y, Y->getName() + ".not");
 3011     Value *NotY = Builder.CreateNot(Y, Y->getName() + ".not");
 3016   if (match(&I, m_Not(m_OneUse(m_c_Or(m_Not(m_Value(X)), m_Value(Y)))))) {
 3017     Value *NotY = Builder.CreateNot(Y, Y->getName() + ".not");
 3017     Value *NotY = Builder.CreateNot(Y, Y->getName() + ".not");
 3045     if (match(NotVal, m_Sub(m_Value(X), m_Value(Y))))
 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);
 3060     if (match(NotVal, m_AShr(m_Constant(C), m_Value(Y))) &&
 3062       return BinaryOperator::CreateLShr(ConstantExpr::getNot(C), Y);
 3065     if (match(NotVal, m_LShr(m_Constant(C), m_Value(Y))) &&
 3067       return BinaryOperator::CreateAShr(ConstantExpr::getNot(C), Y);
 3265       if (match(RHS, m_Not(m_Value(Y))) && !isFreeToInvert(Y, Y->hasOneUse())) {
 3265       if (match(RHS, m_Not(m_Value(Y))) && !isFreeToInvert(Y, Y->hasOneUse())) {
 3265       if (match(RHS, m_Not(m_Value(Y))) && !isFreeToInvert(Y, Y->hasOneUse())) {
 3268             Builder.CreateICmp(getInverseMinMaxPred(SPF), NotX, Y), NotX, Y);
 3268             Builder.CreateICmp(getInverseMinMaxPred(SPF), NotX, Y), NotX, Y);