reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1687 if (Value *V = dyn_castNegVal(Op1)) { 1690 if (const auto *BO = dyn_cast<BinaryOperator>(Op1)) { 1696 if (cast<Constant>(Op1)->isNotMinSignedValue() && I.hasNoSignedWrap()) 1704 return BinaryOperator::CreateXor(Op0, Op1); 1708 return BinaryOperator::CreateNot(Op1); 1712 if (match(Op0, m_Not(m_Value(X))) && match(Op1, m_Not(m_Value(Y)))) 1717 return BinaryOperator::CreateAdd(Builder.CreateNot(Op1), X); 1720 if (match(Op1, m_OneUse(m_Add(m_Value(X), m_One())))) 1724 if (match(Op1, m_OneUse(m_Not(m_Value(X))))) { 1732 if (match(Op1, m_ZExt(m_Value(X))) && X->getType()->isIntOrIntVectorTy(1)) { 1739 if (match(Op1, m_SExt(m_Value(X))) && X->getType()->isIntOrIntVectorTy(1)) { 1748 if (match(Op1, m_Not(m_Value(X)))) 1752 if (SelectInst *SI = dyn_cast<SelectInst>(Op1)) 1757 if (PHINode *PN = dyn_cast<PHINode>(Op1)) 1764 if (match(Op1, m_Sub(m_Constant(C2), m_Value(X)))) 1768 if (match(Op1, m_Add(m_Value(X), m_Constant(C2)))) 1777 match(Op1, m_TruncOrSelf(m_Value(Op1Wide))); 1778 bool HadTrunc = Op1Wide != Op1; 1779 bool NoTruncOrTruncIsOneUse = !HadTrunc || Op1->hasOneUse(); 1794 return TruncInst::CreateTruncOrBitCast(NewShift, Op1->getType()); 1806 return TruncInst::CreateTruncOrBitCast(NewShift, Op1->getType()); 1809 if (!HadTrunc && Op1->hasOneUse()) { 1811 SelectPatternFlavor SPF = matchSelectPattern(Op1, LHS, RHS).Flavor; 1815 cast<SelectInst>(Op1)->swapValues(); 1817 return replaceInstUsesWith(I, Op1); 1825 KnownBits RHSKnown = computeKnownBits(Op1, 0, &I); 1827 return BinaryOperator::CreateXor(Op1, Op0); 1834 if (match(Op1, m_c_Add(m_Specific(Op0), m_Value(Y)))) 1838 if (match(Op0, m_Sub(m_Specific(Op1), m_Value(Y)))) 1845 if (match(Op1, m_And(m_Value(A), m_Value(B))) && 1854 match(Op1, m_c_Or(m_Specific(A), m_Specific(B))) && 1855 (Op0->hasOneUse() || Op1->hasOneUse())) 1862 if (match(Op1, m_Xor(m_Value(A), m_Value(B))) && 1871 match(Op1, m_c_Or(m_Specific(A), m_Specific(B))) && 1872 (Op0->hasOneUse() || Op1->hasOneUse())) 1879 if (match(Op0, m_OneUse(m_c_Or(m_Value(Y), m_Specific(Op1))))) 1881 Y, Builder.CreateNot(Op1, Op1->getName() + ".not")); 1881 Y, Builder.CreateNot(Op1, Op1->getName() + ".not")); 1884 if (Op1->hasOneUse()) { 1889 if (match(Op1, m_Sub(m_Value(Y), m_Value(Z)))) 1891 Builder.CreateSub(Z, Y, Op1->getName())); 1894 if (match(Op1, m_c_And(m_Value(Y), m_Specific(Op0)))) 1901 if (match(Op0, m_Zero()) && match(Op1, m_SDiv(m_Value(X), m_APInt(DivC))) && 1905 BO->setIsExact(cast<BinaryOperator>(Op1)->isExact()); 1910 if (match(Op1, m_Shl(m_Value(X), m_Value(Y))) && match(Op0, m_Zero())) 1917 if (match(Op1, m_SExt(m_Value(Y))) && 1928 if (match(Op1, m_c_Mul(m_Value(A), m_Neg(m_Value(B))))) 1934 if (match(Op1, m_Mul(m_Value(A), m_Constant(C))) && !isa<ConstantExpr>(C)) { 1947 Value *NotA = Op0, *MinMax = Op1; 1950 NotA = Op1; 1977 match(Op1, m_PtrToInt(m_Value(RHSOp)))) 1983 match(Op1, m_Trunc(m_PtrToInt(m_Value(RHSOp))))) 1995 if (match(Op1, m_AShr(m_Value(A), m_APInt(ShAmt))) && 1996 Op1->hasNUses(2) && *ShAmt == Ty->getScalarSizeInBits() - 1 && 1997 match(Op0, m_OneUse(m_c_Xor(m_Specific(A), m_Specific(Op1))))) { 2016 if (!I.hasNoSignedWrap() && willNotOverflowSignedSub(Op0, Op1, I)) { 2020 if (!I.hasNoUnsignedWrap() && willNotOverflowUnsignedSub(Op0, Op1, I)) {