reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
2497 if (match(Op0, m_And(m_Value(A), m_Value(C))) && 2506 if (match(A, m_Or(m_Value(V1), m_Value(V2))) && 2511 return BinaryOperator::CreateAnd(A, 2515 ((V1 == A && 2517 (V2 == A && 2525 if (match(A, m_Or(m_Value(V1), m_ConstantInt(C3))) && 2539 if (match(A, m_c_Or(m_Value(X), m_Specific(B)))) 2542 if (match(B, m_c_Or(m_Specific(A), m_Value(X)))) 2543 return BinaryOperator::CreateOr(Builder.CreateAnd(X, C2), A); 2546 if (match(A, m_c_Xor(m_Value(X), m_Specific(B)))) 2549 if (match(B, m_c_Xor(m_Specific(A), m_Value(X)))) 2550 return BinaryOperator::CreateXor(Builder.CreateAnd(X, C2), A); 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)))) 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)); 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); 2613 if (Op1->hasOneUse() && match(A, m_Not(m_Specific(Op0)))) { 2618 Value *Not = Builder.CreateNot(A, A->getName() + ".not"); 2618 Value *Not = Builder.CreateNot(A, A->getName() + ".not"); 2625 if (match(Op1, m_Not(m_Value(A)))) 2626 if (BinaryOperator *B = dyn_cast<BinaryOperator>(A)) 2679 if (match(Op0, m_OneUse(m_SExt(m_Value(A)))) && 2680 A->getType()->isIntOrIntVectorTy(1)) 2681 return SelectInst::Create(A, ConstantInt::getSigned(I.getType(), -1), Op1); 2682 if (match(Op1, m_OneUse(m_SExt(m_Value(A)))) && 2683 A->getType()->isIntOrIntVectorTy(1)) 2684 return SelectInst::Create(A, ConstantInt::getSigned(I.getType(), -1), Op0); 2693 match(Op0, m_Or(m_Value(A), m_ConstantInt(CI)))) { 2694 Value *Inner = Builder.CreateOr(A, Op1); 2705 match(Op0, m_Select(m_Value(X), m_Value(A), m_Value(B))) && 2707 Value *orTrue = Builder.CreateOr(A, C);