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

References

lib/Transforms/InstCombine/InstCombineAddSub.cpp
 1673   if (Value *V = SimplifySubInst(I.getOperand(0), I.getOperand(1),
 1673   if (Value *V = SimplifySubInst(I.getOperand(0), I.getOperand(1),
 1674                                  I.hasNoSignedWrap(), I.hasNoUnsignedWrap(),
 1674                                  I.hasNoSignedWrap(), I.hasNoUnsignedWrap(),
 1675                                  SQ.getWithInstruction(&I)))
 1676     return replaceInstUsesWith(I, V);
 1678   if (Instruction *X = foldVectorBinop(I))
 1682   if (Value *V = SimplifyUsingDistributiveLaws(I))
 1683     return replaceInstUsesWith(I, V);
 1686   Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
 1686   Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
 1693       if (BO->hasNoSignedWrap() && I.hasNoSignedWrap())
 1696       if (cast<Constant>(Op1)->isNotMinSignedValue() && I.hasNoSignedWrap())
 1703   if (I.getType()->isIntOrIntVectorTy(1))
 1726         Builder.CreateAdd(Op0, ConstantInt::get(I.getType(), 1)), X);
 1736         return CastInst::CreateSExtOrBitCast(X, I.getType());
 1743         return CastInst::CreateZExtOrBitCast(X, I.getType());
 1753       if (Instruction *R = FoldOpIntoSelect(I, SI))
 1758       if (Instruction *R = foldOpIntoPhi(I, PN))
 1817           return replaceInstUsesWith(I, Op1);
 1825       KnownBits RHSKnown = computeKnownBits(Op1, 0, &I);
 1903       Constant *NegDivC = ConstantInt::get(I.getType(), -(*DivC));
 1919       Value *Zext = Builder.CreateZExt(Y, I.getType());
 1921       Add->setHasNoSignedWrap(I.hasNoSignedWrap());
 1978     if (Value *Res = OptimizePointerDifference(LHSOp, RHSOp, I.getType()))
 1979       return replaceInstUsesWith(I, Res);
 1984     if (Value *Res = OptimizePointerDifference(LHSOp, RHSOp, I.getType()))
 1985       return replaceInstUsesWith(I, Res);
 1994   Type *Ty = I.getType();
 2003     Value *Neg = Builder.CreateNeg(A, "", I.hasNoUnsignedWrap(),
 2004                                    I.hasNoSignedWrap());
 2009           canonicalizeCondSignextOfHighBitExtractToSignextHighBitExtract(I))
 2012   if (Instruction *Ext = narrowMathIfNoOverflow(I))
 2016   if (!I.hasNoSignedWrap() && willNotOverflowSignedSub(Op0, Op1, I)) {
 2016   if (!I.hasNoSignedWrap() && willNotOverflowSignedSub(Op0, Op1, I)) {
 2018     I.setHasNoSignedWrap(true);
 2020   if (!I.hasNoUnsignedWrap() && willNotOverflowUnsignedSub(Op0, Op1, I)) {
 2020   if (!I.hasNoUnsignedWrap() && willNotOverflowUnsignedSub(Op0, Op1, I)) {
 2022     I.setHasNoUnsignedWrap(true);
 2025   return Changed ? &I : nullptr;