Lines Matching defs:Shl
82 if (I->getOpcode() == Instruction::Shl && !I->hasNoUnsignedWrap()) {
169 Value *Shl = Builder.CreateShl(FrX, Z, "mulshl", HasNUW, PropagateNSW);
170 return Builder.CreateAdd(Shl, FrX, Mul.getName(), HasNUW, PropagateNSW);
182 Value *Shl = Builder.CreateShl(FrX, Z, "mulshl");
183 return Builder.CreateSub(Shl, FrX, Mul.getName());
228 Constant *Shl =
229 ConstantFoldBinaryOpOperands(Instruction::Shl, C1, C2, DL);
230 assert(Shl && "Constant folding of immediate constants failed");
232 BinaryOperator *BO = BinaryOperator::CreateMul(NewOp, Shl);
235 if (HasNSW && Mul->hasNoSignedWrap() && Shl->isNotMinSignedValue())
243 BinaryOperator *Shl = BinaryOperator::CreateShl(NewOp, NewCst);
246 Shl->setHasNoUnsignedWrap();
250 Shl->setHasNoSignedWrap();
253 return Shl;
533 BinaryOperator *Shl = BinaryOperator::CreateShl(Op1, Res);
535 Shl->setHasNoUnsignedWrap(HasNUW);
536 return Shl;
539 BinaryOperator *Shl = BinaryOperator::CreateShl(Op0, Res);
541 Shl->setHasNoUnsignedWrap(HasNUW);
542 return Shl;
1168 auto *Shl = cast<OverflowingBinaryOperator>(Op1);
1169 bool HasNUW = Mul->hasNoUnsignedWrap() && Shl->hasNoUnsignedWrap();
1170 bool HasNSW = Mul->hasNoSignedWrap() && Shl->hasNoSignedWrap();
1178 Value *Shl = Builder.CreateShl(ConstantInt::get(Ty, 1), Z);
1179 return Builder.CreateSDiv(Y, Shl, "", I.isExact());