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

References

lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
 2498       match(Op1, m_And(m_Value(B), m_Value(D)))) {
 2557     if (Op0->hasOneUse() || Op1->hasOneUse()) {
 2580     if (match(Op1, m_Xor(m_Xor(m_Specific(B), m_Value(C)), m_Specific(A))))
 2585     if (match(Op1, m_Xor(m_Specific(B), m_Specific(A))))
 2586       return BinaryOperator::CreateOr(Op1, C);
 2589   if (match(Op0, m_And(m_Or(m_Specific(Op1), m_Value(C)), m_Value(A))))
 2590     return BinaryOperator::CreateOr(Op1, Builder.CreateAnd(A, C));
 2598     std::swap(Op0, Op1);
 2605   if (match(Op1, m_Xor(m_Value(A), m_Value(B)))) {
 2613     if (Op1->hasOneUse() && match(A, m_Not(m_Specific(Op0)))) {
 2617     if (Op1->hasOneUse() && match(B, m_Not(m_Specific(Op0)))) {
 2625   if (match(Op1, m_Not(m_Value(A))))
 2628           Op1->hasOneUse() && (B->getOpcode() == Instruction::Or ||
 2637     std::swap(Op0, Op1);
 2641     ICmpInst *RHS = dyn_cast<ICmpInst>(Op1);
 2649     if (LHS && match(Op1, m_OneUse(m_Or(m_Value(X), m_Value(Y))))) {
 2681     return SelectInst::Create(A, ConstantInt::getSigned(I.getType(), -1), Op1);
 2682   if (match(Op1, m_OneUse(m_SExt(m_Value(A)))) &&
 2692   if (Op0->hasOneUse() && !isa<ConstantInt>(Op1) &&
 2694     Value *Inner = Builder.CreateOr(A, Op1);
 2704     if (Op0->hasOneUse() && Op1->hasOneUse() &&
 2706         match(Op1, m_Select(m_Value(Y), m_Value(C), m_Value(D))) && X == Y) {