reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
3181 if (match(&I, m_c_Xor(m_OneUse(m_Xor(m_Value(A), m_Value(B))), 3182 m_OneUse(m_c_Or(m_Deferred(A), m_Value(C)))))) 3184 Builder.CreateAnd(Builder.CreateNot(A), C), B); 3187 if (match(&I, m_c_Xor(m_OneUse(m_Xor(m_Value(A), m_Value(B))), 3190 Builder.CreateAnd(Builder.CreateNot(B), C), A); 3193 if (match(Op0, m_And(m_Value(A), m_Value(B))) && 3194 match(Op1, m_c_Xor(m_Specific(A), m_Specific(B)))) 3195 return BinaryOperator::CreateOr(A, B); 3197 if (match(Op0, m_Xor(m_Value(A), m_Value(B))) && 3198 match(Op1, m_c_And(m_Specific(A), m_Specific(B)))) 3199 return BinaryOperator::CreateOr(A, B); 3203 if (match(Op0, m_c_And(m_Value(A), m_Not(m_Value(B)))) && 3204 match(Op1, m_Not(m_Specific(A)))) 3205 return BinaryOperator::CreateNot(Builder.CreateAnd(A, B)); 3225 if (match(Op1, m_AShr(m_Value(A), m_APInt(ShAmt))) && 3227 match(Op0, m_OneUse(m_c_Add(m_Specific(A), m_Specific(Op1))))) { 3231 Value *Cmp = Builder.CreateICmpSLT(A, ConstantInt::getNullValue(Ty)); 3234 Value *Neg = Builder.CreateNeg(A, "", Add->hasNoUnsignedWrap(), 3236 return SelectInst::Create(Cmp, Neg, A);