Lines Matching refs:Op1

826   Value *Op0 = Add.getOperand(0), *Op1 = Add.getOperand(1);  in foldNoWrapAdd()  local
829 if (!match(Op1, m_Constant(Op1C))) in foldNoWrapAdd()
836 if (match(Op1, m_APInt(C1)) && in foldNoWrapAdd()
865 Value *Op0 = Add.getOperand(0), *Op1 = Add.getOperand(1); in foldAddWithConstant() local
867 if (!match(Op1, m_ImmConstant(Op1C))) in foldAddWithConstant()
884 match(Op1, m_AllOnes())) in foldAddWithConstant()
890 return SelectInst::Create(X, InstCombiner::AddOne(Op1C), Op1); in foldAddWithConstant()
894 return SelectInst::Create(X, InstCombiner::SubOne(Op1C), Op1); in foldAddWithConstant()
901 if (!match(Op1, m_APInt(C))) in foldAddWithConstant()
919 return BinaryOperator::CreateOr(Op0, Op1); in foldAddWithConstant()
923 return BinaryOperator::CreateXor(Op0, Op1); in foldAddWithConstant()
1260 auto *Op1 = dyn_cast<BinaryOperator>(I.getOperand(1)); in factorizeMathWithShlOps() local
1261 if (!Op0 || !Op1 || !(Op0->hasOneUse() || Op1->hasOneUse())) in factorizeMathWithShlOps()
1266 !match(Op1, m_Shl(m_Value(Y), m_Specific(ShAmt)))) in factorizeMathWithShlOps()
1271 Op1->hasNoSignedWrap(); in factorizeMathWithShlOps()
1273 Op1->hasNoUnsignedWrap(); in factorizeMathWithShlOps()
1489 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in factorizeFAddFSub() local
1493 match(Op1, m_OneUse(m_c_FMul(m_Value(Y), m_Specific(Z))))) || in factorizeFAddFSub()
1495 match(Op1, m_OneUse(m_c_FMul(m_Value(Y), m_Specific(Z)))))) in factorizeFAddFSub()
1498 match(Op1, m_OneUse(m_FDiv(m_Value(Y), m_Specific(Z))))) in factorizeFAddFSub()
1719 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in visitSub() local
1723 if (Value *V = dyn_castNegVal(Op1)) { in visitSub()
1726 if (const auto *BO = dyn_cast<BinaryOperator>(Op1)) { in visitSub()
1732 if (cast<Constant>(Op1)->isNotMinSignedValue() && I.hasNoSignedWrap()) in visitSub()
1749 if (match(Op1, m_Add(m_Value(X), m_ImmConstant(C2)))) in visitSub()
1753 auto TryToNarrowDeduceFlags = [this, &I, &Op0, &Op1]() -> Instruction * { in visitSub()
1758 if (!I.hasNoSignedWrap() && willNotOverflowSignedSub(Op0, Op1, I)) { in visitSub()
1762 if (!I.hasNoUnsignedWrap() && willNotOverflowUnsignedSub(Op0, Op1, I)) { in visitSub()
1774 if (!IsNegation || none_of(I.users(), [&I, Op1](const User *U) { in visitSub()
1779 m_Select(m_Value(), m_Specific(Op1), m_Specific(&I))) || in visitSub()
1780 match(UI, m_Select(m_Value(), m_Specific(&I), m_Specific(Op1))); in visitSub()
1782 if (Value *NegOp1 = Negator::Negate(IsNegation, Op1, *this)) in visitSub()
1793 return BinaryOperator::CreateXor(Op0, Op1); in visitSub()
1797 return BinaryOperator::CreateNot(Op1); in visitSub()
1801 if (match(Op0, m_Not(m_Value(X))) && match(Op1, m_Not(m_Value(Y)))) in visitSub()
1806 return BinaryOperator::CreateAdd(Builder.CreateNot(Op1), X); in visitSub()
1815 Value *YW = Builder.CreateAdd(Y, Op1); in visitSub()
1821 Value *Add = Builder.CreateAdd(Y, Op1); in visitSub()
1829 if (match(Op0, m_AddRdx(V0)) && match(Op1, m_AddRdx(V1)) && in visitSub()
1841 if (match(Op1, m_ZExt(m_Value(X))) && X->getType()->isIntOrIntVectorTy(1)) in visitSub()
1844 if (match(Op1, m_SExt(m_Value(X))) && X->getType()->isIntOrIntVectorTy(1)) in visitSub()
1849 if (match(Op1, m_Not(m_Value(X)))) in visitSub()
1853 if (SelectInst *SI = dyn_cast<SelectInst>(Op1)) in visitSub()
1858 if (PHINode *PN = dyn_cast<PHINode>(Op1)) in visitSub()
1865 if (match(Op1, m_Sub(m_ImmConstant(C2), m_Value(X)))) in visitSub()
1873 KnownBits RHSKnown = computeKnownBits(Op1, 0, &I); in visitSub()
1875 return BinaryOperator::CreateXor(Op1, Op0); in visitSub()
1881 if (match(Op1, m_c_Add(m_Specific(Op0), m_Value(Y)))) in visitSub()
1885 if (match(Op0, m_Sub(m_Specific(Op1), m_Value(Y)))) in visitSub()
1892 if (match(Op1, m_And(m_Value(A), m_Value(B))) && in visitSub()
1901 match(Op1, m_c_Or(m_Specific(A), m_Specific(B)))) in visitSub()
1909 match(Op1, m_c_And(m_Specific(A), m_Specific(B)))) in visitSub()
1917 match(Op1, m_c_Or(m_Specific(A), m_Specific(B))) && in visitSub()
1918 (Op0->hasOneUse() || Op1->hasOneUse())) in visitSub()
1925 if (match(Op1, m_Xor(m_Value(A), m_Value(B))) && in visitSub()
1934 match(Op1, m_c_Or(m_Specific(A), m_Specific(B))) && in visitSub()
1935 (Op0->hasOneUse() || Op1->hasOneUse())) in visitSub()
1942 if (match(Op0, m_OneUse(m_c_Or(m_Value(Y), m_Specific(Op1))))) in visitSub()
1944 Y, Builder.CreateNot(Op1, Op1->getName() + ".not")); in visitSub()
1950 if (match(Op0, m_OneUse(m_c_And(m_Specific(Op1), in visitSub()
1953 Op1, Builder.CreateAdd(X, Constant::getAllOnesValue(I.getType())))); in visitSub()
1960 if (match(Op0, m_OneUse(m_And(m_Specific(Op1), m_Constant(C))))) { in visitSub()
1962 Builder.CreateAnd(Op1, Builder.CreateNot(C))); in visitSub()
2000 /*Select=*/Op0, /*OtherHandOfSub=*/Op1, in visitSub()
2001 [Builder = &Builder, Op1](Value *OtherHandOfSelect) { in visitSub()
2003 /*OtherHandOfSub=*/Op1); in visitSub()
2007 /*Select=*/Op1, /*OtherHandOfSub=*/Op0, in visitSub()
2016 if (match(Op1, m_c_And(m_Specific(Op0), m_Value(Y))) && in visitSub()
2017 (Op1->hasOneUse() || isa<Constant>(Y))) in visitSub()
2028 Value *NotA = Op0, *MinMax = Op1; in visitSub()
2031 NotA = Op1; in visitSub()
2058 match(Op1, m_PtrToInt(m_Value(RHSOp)))) in visitSub()
2065 match(Op1, m_Trunc(m_PtrToInt(m_Value(RHSOp))))) in visitSub()
2078 if (match(Op1, m_AShr(m_Value(A), m_APInt(ShAmt))) && in visitSub()
2079 Op1->hasNUses(2) && *ShAmt == Ty->getScalarSizeInBits() - 1 && in visitSub()
2080 match(Op0, m_OneUse(m_c_Xor(m_Specific(A), m_Specific(Op1))))) { in visitSub()
2097 match(Op1, m_And(m_Specific(X), m_APInt(AndC)))) { in visitSub()
2110 if (match(Op1, m_OneUse(m_Intrinsic<Intrinsic::usub_sat>(m_Specific(Op0), in visitSub()
2117 match(Op1, m_OneUse(m_Intrinsic<Intrinsic::ctpop>(m_Value(X))))) in visitSub()
2241 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in visitFSub() local
2249 if (match(Op1, m_OneUse(m_FSub(m_Value(X), m_Value(Y))))) { in visitFSub()
2258 Value *FAdd = Builder.CreateFAddFMF(X, Op1, &I); in visitFSub()
2263 if (SelectInst *SI = dyn_cast<SelectInst>(Op1)) in visitFSub()
2270 if (match(Op1, m_ImmConstant(C))) in visitFSub()
2274 if (match(Op1, m_FNeg(m_Value(Y)))) in visitFSub()
2280 if (match(Op1, m_OneUse(m_FPTrunc(m_FNeg(m_Value(Y)))))) in visitFSub()
2284 if (match(Op1, m_OneUse(m_FPExt(m_FNeg(m_Value(Y)))))) in visitFSub()
2290 if (match(Op1, m_OneUse(m_c_FMul(m_FNeg(m_Value(X)), m_Value(Y))))) { in visitFSub()
2296 if (match(Op1, m_OneUse(m_FDiv(m_FNeg(m_Value(X)), m_Value(Y)))) || in visitFSub()
2297 match(Op1, m_OneUse(m_FDiv(m_Value(X), m_FNeg(m_Value(Y)))))) { in visitFSub()
2303 if (Value *V = SimplifySelectsFeedingBinaryOp(I, Op0, Op1)) in visitFSub()
2308 if (match(Op0, m_FSub(m_Specific(Op1), m_Value(X)))) in visitFSub()
2313 if (match(Op1, m_c_FAdd(m_Specific(Op0), m_Value(X)))) in visitFSub()
2317 if (match(Op0, m_FMul(m_Specific(Op1), m_Constant(C)))) { in visitFSub()
2319 return BinaryOperator::CreateFMulFMF(Op1, CSubOne, &I); in visitFSub()
2322 if (match(Op1, m_FMul(m_Specific(Op0), m_Constant(C)))) { in visitFSub()
2334 Value *YW = Builder.CreateFAddFMF(Y, Op1, &I); in visitFSub()
2343 if (match(Op0, m_FaddRdx(A0, V0)) && match(Op1, m_FaddRdx(A1, V1)) && in visitFSub()
2365 Value *FAdd = Builder.CreateFAddFMF(Y, Op1, &I); in visitFSub()