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

References

lib/Transforms/InstCombine/InstCombineCompares.cpp
 4129     if (A == Op1 || B == Op1) { // (A^B) == A  ->  B == 0
 4129     if (A == Op1 || B == Op1) { // (A^B) == A  ->  B == 0
 4130       Value *OtherVal = A == Op1 ? B : A;
 4134     if (match(Op1, m_Xor(m_Value(C), m_Value(D)))) {
 4138           Op1->hasOneUse()) {
 4156   if (match(Op1, m_Xor(m_Value(A), m_Value(B))) && (A == Op0 || B == Op0)) {
 4164       match(Op1, m_OneUse(m_And(m_Value(C), m_Value(D))))) {
 4186       Op1 = Builder.CreateXor(X, Y);
 4187       Op1 = Builder.CreateAnd(Op1, Z);
 4187       Op1 = Builder.CreateAnd(Op1, Z);
 4188       I.setOperand(0, Op1);
 4189       I.setOperand(1, Constant::getNullValue(Op1->getType()));
 4198        match(Op1, m_And(m_Value(B), m_ConstantInt(Cst1)))) ||
 4199       (Op1->hasOneUse() && match(Op0, m_And(m_Value(B), m_ConstantInt(Cst1))) &&
 4200        match(Op1, m_ZExt(m_Value(A))))) {
 4210        match(Op1, m_OneUse(m_LShr(m_Value(B), m_Specific(Cst1))))) ||
 4212        match(Op1, m_OneUse(m_AShr(m_Value(B), m_Specific(Cst1)))))) {
 4226       match(Op1, m_OneUse(m_Shl(m_Value(B), m_Specific(Cst1))))) {
 4243       match(Op1, m_ConstantInt(Cst1)) &&
 4266   if ((match(Op0, m_BSwap(m_Value(A))) && match(Op1, m_BSwap(m_Value(B)))) ||
 4268        match(Op1, m_BitReverse(m_Value(B)))))
 4276       !match(Op1, m_ZeroInt()))
 4281   if (match(Op0, m_OneUse(m_c_And(m_Neg(m_Specific(Op1)), m_Specific(Op1)))))
 4281   if (match(Op0, m_OneUse(m_c_And(m_Neg(m_Specific(Op1)), m_Specific(Op1)))))
 4282     A = Op1;
 4283   else if (match(Op1,