reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
172 if (Value *V = SimplifyMulInst(I.getOperand(0), I.getOperand(1), 172 if (Value *V = SimplifyMulInst(I.getOperand(0), I.getOperand(1), 173 SQ.getWithInstruction(&I))) 174 return replaceInstUsesWith(I, V); 176 if (SimplifyAssociativeOrCommutative(I)) 177 return &I; 179 if (Instruction *X = foldVectorBinop(I)) 182 if (Value *V = SimplifyUsingDistributiveLaws(I)) 183 return replaceInstUsesWith(I, V); 186 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); 186 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); 188 BinaryOperator *BO = BinaryOperator::CreateNeg(Op0, I.getName()); 189 if (I.hasNoSignedWrap()) 199 if (match(&I, m_Mul(m_Shl(m_Value(NewOp), m_Constant(C2)), 204 BinaryOperator *Mul = cast<BinaryOperator>(I.getOperand(0)); 206 if (I.hasNoUnsignedWrap() && Mul->hasNoUnsignedWrap()) 208 if (I.hasNoSignedWrap() && Mul->hasNoSignedWrap() && 214 if (match(&I, m_Mul(m_Value(NewOp), m_Constant(C1)))) { 219 if (I.hasNoUnsignedWrap()) 221 if (I.hasNoSignedWrap()) { 257 if (Instruction *FoldedMul = foldBinOpIntoSelectOrPhi(I)) 260 if (Value *FoldedMul = foldMulSelectToNegate(I, Builder)) 261 return replaceInstUsesWith(I, FoldedMul); 286 if (I.hasNoSignedWrap() && 295 if (match(&I, m_c_Mul(m_OneUse(m_Neg(m_Value(X))), m_Value(Y)))) 318 return replaceInstUsesWith(I, X); 332 if (I.getType()->isIntOrIntVectorTy(1)) 349 if (I.hasNoUnsignedWrap()) 351 if (I.hasNoSignedWrap() && ShlNSW) 360 return SelectInst::Create(X, Op1, ConstantInt::get(I.getType(), 0)); 362 return SelectInst::Create(X, Op0, ConstantInt::get(I.getType(), 0)); 376 if (Instruction *Ext = narrowMathIfNoOverflow(I)) 380 if (!I.hasNoSignedWrap() && willNotOverflowSignedMul(Op0, Op1, I)) { 380 if (!I.hasNoSignedWrap() && willNotOverflowSignedMul(Op0, Op1, I)) { 382 I.setHasNoSignedWrap(true); 385 if (!I.hasNoUnsignedWrap() && willNotOverflowUnsignedMul(Op0, Op1, I)) { 385 if (!I.hasNoUnsignedWrap() && willNotOverflowUnsignedMul(Op0, Op1, I)) { 387 I.setHasNoUnsignedWrap(true); 390 return Changed ? &I : nullptr;