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

References

lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
 1752   if (match(Op1, m_APInt(C))) {
 1766       Value *And = Builder.CreateAnd(X, Op1);
 1795         Value *NewRHS = Builder.CreateAnd(Y, Op1, Y->getName() + ".masked");
 1801         Value *NewLHS = Builder.CreateAnd(X, Op1, X->getName() + ".masked");
 1808   if (ConstantInt *AndRHS = dyn_cast<ConstantInt>(Op1)) {
 1879     if (match(Op1, m_OneUse(m_c_Xor(m_Specific(Op0), m_Value(B)))))
 1882     if (match(Op0, m_OneUse(m_c_Xor(m_Specific(Op1), m_Value(B)))))
 1883       return BinaryOperator::CreateAnd(Op1, Builder.CreateNot(B));
 1887       if (match(Op1, m_Xor(m_Xor(m_Specific(B), m_Value(C)), m_Specific(A))))
 1888         if (Op1->hasOneUse() || isFreeToInvert(C, C->hasOneUse()))
 1893       if (match(Op1, m_Xor(m_Specific(B), m_Specific(A))))
 1895           return BinaryOperator::CreateAnd(Op1, Builder.CreateNot(C));
 1901     if (match(Op1, m_c_Xor(m_Not(m_Value(A)), m_Value(B))) &&
 1910         match(Op1, m_c_Or(m_Specific(A), m_Specific(B))))
 1916     ICmpInst *RHS = dyn_cast<ICmpInst>(Op1);
 1924     if (LHS && match(Op1, m_OneUse(m_And(m_Value(X), m_Value(Y))))) {
 1957     return SelectInst::Create(A, Op1, Constant::getNullValue(I.getType()));
 1958   if (match(Op1, m_OneUse(m_SExt(m_Value(A)))) &&