Lines Matching refs:Mul

296   const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(this);
297 if (!Mul) return false;
300 const SCEVConstant *SC = dyn_cast<SCEVConstant>(Mul->getOperand(0));
1406 const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(Ops[i]);
1407 if (Mul && isa<SCEVConstant>(Mul->getOperand(0))) {
1409 Scale * cast<SCEVConstant>(Mul->getOperand(0))->getValue()->getValue();
1410 if (Mul->getNumOperands() == 2 && isa<SCEVAddExpr>(Mul->getOperand(1))) {
1412 const SCEVAddExpr *Add = cast<SCEVAddExpr>(Mul->getOperand(1));
1420 SmallVector<const SCEV *, 4> MulOps(Mul->op_begin()+1, Mul->op_end());
1528 const SCEV *Mul = getMulExpr(Scale, Ops[i]);
1530 return Mul;
1531 Ops[i] = Mul;
1658 const SCEVMulExpr *Mul = cast<SCEVMulExpr>(Ops[Idx]);
1659 for (unsigned MulOp = 0, e = Mul->getNumOperands(); MulOp != e; ++MulOp) {
1660 const SCEV *MulOpSCEV = Mul->getOperand(MulOp);
1666 const SCEV *InnerMul = Mul->getOperand(MulOp == 0);
1667 if (Mul->getNumOperands() != 2) {
1670 SmallVector<const SCEV *, 4> MulOps(Mul->op_begin(),
1671 Mul->op_begin()+MulOp);
1672 MulOps.append(Mul->op_begin()+MulOp+1, Mul->op_end());
1701 const SCEV *InnerMul1 = Mul->getOperand(MulOp == 0);
1702 if (Mul->getNumOperands() != 2) {
1703 SmallVector<const SCEV *, 4> MulOps(Mul->op_begin(),
1704 Mul->op_begin()+MulOp);
1705 MulOps.append(Mul->op_begin()+MulOp+1, Mul->op_end());
1935 const SCEV *Mul = getMulExpr(Ops[0], *I);
1936 if (!isa<SCEVMulExpr>(Mul)) AnyFolded = true;
1937 NewOps.push_back(Mul);
1967 while (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(Ops[Idx])) {
1971 Ops.append(Mul->op_begin(), Mul->op_end());
3336 if (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(S)) {
3337 ConstantRange X = getUnsignedRange(Mul->getOperand(0));
3338 for (unsigned i = 1, e = Mul->getNumOperands(); i != e; ++i)
3339 X = X.multiply(getUnsignedRange(Mul->getOperand(i)));
3340 return setUnsignedRange(Mul, ConservativeResult.intersectWith(X));
3477 if (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(S)) {
3478 ConstantRange X = getSignedRange(Mul->getOperand(0));
3479 for (unsigned i = 1, e = Mul->getNumOperands(); i != e; ++i)
3480 X = X.multiply(getSignedRange(Mul->getOperand(i)));
3481 return setSignedRange(Mul, ConservativeResult.intersectWith(X));
3659 case Instruction::Mul: {
3664 Op->getValueID() == Instruction::Mul + Value::InstructionVal;
4025 if (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(TCMul))
4026 TCMul = Mul->getOperand(0);
6759 // When GCD is not a constant, it could be that the GCD is an Add, Mul,
6843 const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(GCD);
6844 if (!Mul)
6850 for (int i = 0, e = Mul->getNumOperands(); i < e; ++i) {
6852 const SCEV *Res = findGCD(SE, Expr, Mul->getOperand(i), &Rem);