Lines Matching refs:Shl
81 if (I->getOpcode() == Instruction::Shl && !I->hasNoUnsignedWrap()) { in simplifyValueKnownNonZero()
170 Value *Shl = Builder.CreateShl(FrX, Z, "mulshl", HasNUW, PropagateNSW); in foldMulShl1() local
171 return Builder.CreateAdd(Shl, FrX, Mul.getName(), HasNUW, PropagateNSW); in foldMulShl1()
181 Value *Shl = Builder.CreateShl(FrX, Z, "mulshl"); in foldMulShl1() local
182 return Builder.CreateSub(Shl, FrX, Mul.getName()); in foldMulShl1()
230 Constant *Shl = ConstantExpr::getShl(C1, C2); in visitMul() local
232 BinaryOperator *BO = BinaryOperator::CreateMul(NewOp, Shl); in visitMul()
235 if (HasNSW && Mul->hasNoSignedWrap() && Shl->isNotMinSignedValue()) in visitMul()
243 BinaryOperator *Shl = BinaryOperator::CreateShl(NewOp, NewCst); in visitMul() local
246 Shl->setHasNoUnsignedWrap(); in visitMul()
250 Shl->setHasNoSignedWrap(); in visitMul()
253 return Shl; in visitMul()
512 BinaryOperator *Shl = BinaryOperator::CreateShl(Op1, Res); in visitMul() local
514 Shl->setHasNoUnsignedWrap(HasNUW); in visitMul()
515 return Shl; in visitMul()
521 BinaryOperator *Shl = BinaryOperator::CreateShl(Op0, Res); in visitMul() local
523 Shl->setHasNoUnsignedWrap(HasNUW); in visitMul()
524 return Shl; in visitMul()
961 auto *Shl = cast<OverflowingBinaryOperator>(Op1); in foldIDivShl() local
962 bool HasNUW = Mul->hasNoUnsignedWrap() && Shl->hasNoUnsignedWrap(); in foldIDivShl()
963 bool HasNSW = Mul->hasNoSignedWrap() && Shl->hasNoSignedWrap(); in foldIDivShl()
971 Value *Shl = Builder.CreateShl(ConstantInt::get(Ty, 1), Z); in foldIDivShl() local
972 return Builder.CreateSDiv(Y, Shl, "", I.isExact()); in foldIDivShl()