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

References

lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
 1754     if (match(Op0, m_OneUse(m_LogicalShift(m_One(), m_Value(X)))) &&
 1763     if (match(Op0, m_OneUse(m_Xor(m_Value(X), m_APInt(XorC))))) {
 1767       And->takeName(Op0);
 1772     if (match(Op0, m_OneUse(m_Or(m_Value(X), m_APInt(OrC))))) {
 1782       And->takeName(Op0);
 1788     if (match(Op0, m_OneUse(m_Xor(m_Value(X), m_Value(Y)))) ||
 1789         match(Op0, m_OneUse(m_Or(m_Value(X), m_Value(Y))))) {
 1791       BinaryOperator::BinaryOps BinOp = cast<BinaryOperator>(Op0)->getOpcode();
 1812     if (BinaryOperator *Op0I = dyn_cast<BinaryOperator>(Op0)) {
 1854       if (match(Op0, m_Trunc(m_And(m_Value(X), m_ConstantInt(YC))))) {
 1879     if (match(Op1, m_OneUse(m_c_Xor(m_Specific(Op0), m_Value(B)))))
 1880       return BinaryOperator::CreateAnd(Op0, Builder.CreateNot(B));
 1882     if (match(Op0, m_OneUse(m_c_Xor(m_Specific(Op1), m_Value(B)))))
 1886     if (match(Op0, m_Xor(m_Value(A), m_Value(B))))
 1889           return BinaryOperator::CreateAnd(Op0, Builder.CreateNot(C));
 1892     if (match(Op0, m_Xor(m_Xor(m_Value(A), m_Value(C)), m_Value(B))))
 1894         if (Op0->hasOneUse() || isFreeToInvert(C, C->hasOneUse()))
 1902         match(Op0, m_c_Or(m_Specific(A), m_Specific(B))))
 1909     if (match(Op0, m_c_Xor(m_Not(m_Value(A)), m_Value(B))) &&
 1915     ICmpInst *LHS = dyn_cast<ICmpInst>(Op0);
 1932     if (RHS && match(Op0, m_OneUse(m_And(m_Value(X), m_Value(Y))))) {
 1955   if (match(Op0, m_OneUse(m_SExt(m_Value(A)))) &&
 1960     return SelectInst::Create(A, Op0, Constant::getNullValue(I.getType()));