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)))) {
 2507             ((V1 == B &&
 2509              (V2 == B &&
 2514         if (match(B, m_Or(m_Value(V1), m_Value(V2))) &&
 2519           return BinaryOperator::CreateAnd(B,
 2527             match(B, m_Or(m_Specific(V1), m_ConstantInt(C4))) &&
 2539         if (match(A, m_c_Or(m_Value(X), m_Specific(B))))
 2540           return BinaryOperator::CreateOr(Builder.CreateAnd(X, C1), B);
 2542         if (match(B, m_c_Or(m_Specific(A), m_Value(X))))
 2546         if (match(A, m_c_Xor(m_Value(X), m_Specific(B))))
 2547           return BinaryOperator::CreateXor(Builder.CreateAnd(X, C1), B);
 2549         if (match(B, m_c_Xor(m_Specific(A), m_Value(X))))
 2559       if (Value *V = matchSelectFromAndOr(A, C, B, D))
 2561       if (Value *V = matchSelectFromAndOr(A, C, D, B))
 2563       if (Value *V = matchSelectFromAndOr(C, A, B, D))
 2565       if (Value *V = matchSelectFromAndOr(C, A, D, B))
 2567       if (Value *V = matchSelectFromAndOr(B, D, A, C))
 2569       if (Value *V = matchSelectFromAndOr(B, D, C, A))
 2571       if (Value *V = matchSelectFromAndOr(D, B, A, C))
 2573       if (Value *V = matchSelectFromAndOr(D, B, C, A))
 2579   if (match(Op0, m_Xor(m_Value(A), m_Value(B))))
 2580     if (match(Op1, m_Xor(m_Xor(m_Specific(B), m_Value(C)), m_Specific(A))))
 2584   if (match(Op0, m_Xor(m_Xor(m_Value(A), m_Value(C)), m_Value(B))))
 2585     if (match(Op1, m_Xor(m_Specific(B), m_Specific(A))))
 2605   if (match(Op1, m_Xor(m_Value(A), m_Value(B)))) {
 2606     if (Op0 == A || Op0 == B)
 2607       return BinaryOperator::CreateOr(A, B);
 2609     if (match(Op0, m_And(m_Specific(A), m_Specific(B))) ||
 2610         match(Op0, m_And(m_Specific(B), m_Specific(A))))
 2611       return BinaryOperator::CreateOr(A, B);
 2614       Value *Not = Builder.CreateNot(B, B->getName() + ".not");
 2614       Value *Not = Builder.CreateNot(B, B->getName() + ".not");
 2617     if (Op1->hasOneUse() && match(B, m_Not(m_Specific(Op0)))) {
 2705         match(Op0, m_Select(m_Value(X), m_Value(A), m_Value(B))) &&
 2708       Value *orFalse = Builder.CreateOr(B, D);