Lines Matching defs:Shl
81 if (I->getOpcode() == Instruction::Shl && !I->hasNoUnsignedWrap()) {
172 Value *Shl = Builder.CreateShl(FrX, Z, "mulshl", HasNUW, PropagateNSW);
173 return Builder.CreateAdd(Shl, FrX, Mul.getName(), HasNUW, PropagateNSW);
185 Value *Shl = Builder.CreateShl(FrX, Z, "mulshl");
186 return Builder.CreateSub(Shl, FrX, Mul.getName());
234 Constant *Shl =
235 ConstantFoldBinaryOpOperands(Instruction::Shl, C1, C2, DL);
236 assert(Shl && "Constant folding of immediate constants failed");
238 BinaryOperator *BO = BinaryOperator::CreateMul(NewOp, Shl);
241 if (HasNSW && Mul->hasNoSignedWrap() && Shl->isNotMinSignedValue())
249 BinaryOperator *Shl = BinaryOperator::CreateShl(NewOp, NewCst);
252 Shl->setHasNoUnsignedWrap();
256 Shl->setHasNoSignedWrap();
259 return Shl;
542 BinaryOperator *Shl = BinaryOperator::CreateShl(Op1, Res);
544 Shl->setHasNoUnsignedWrap(HasNUW);
545 return Shl;
551 BinaryOperator *Shl = BinaryOperator::CreateShl(Op0, Res);
553 Shl->setHasNoUnsignedWrap(HasNUW);
554 return Shl;
1098 auto *Shl = cast<OverflowingBinaryOperator>(Op1);
1099 bool HasNUW = Mul->hasNoUnsignedWrap() && Shl->hasNoUnsignedWrap();
1100 bool HasNSW = Mul->hasNoSignedWrap() && Shl->hasNoSignedWrap();
1108 Value *Shl = Builder.CreateShl(ConstantInt::get(Ty, 1), Z);
1109 return Builder.CreateSDiv(Y, Shl, "", I.isExact());