• Home
  • Raw
  • Download

Lines Matching refs:Mul

289   const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(this);  in isNonConstantNegative()  local
290 if (!Mul) return false; in isNonConstantNegative()
293 const SCEVConstant *SC = dyn_cast<SCEVConstant>(Mul->getOperand(0)); in isNonConstantNegative()
1886 const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(Ops[i]); in CollectAddOperandsWithScales() local
1887 if (Mul && isa<SCEVConstant>(Mul->getOperand(0))) { in CollectAddOperandsWithScales()
1889 Scale * cast<SCEVConstant>(Mul->getOperand(0))->getAPInt(); in CollectAddOperandsWithScales()
1890 if (Mul->getNumOperands() == 2 && isa<SCEVAddExpr>(Mul->getOperand(1))) { in CollectAddOperandsWithScales()
1892 const SCEVAddExpr *Add = cast<SCEVAddExpr>(Mul->getOperand(1)); in CollectAddOperandsWithScales()
1900 SmallVector<const SCEV *, 4> MulOps(Mul->op_begin()+1, Mul->op_end()); in CollectAddOperandsWithScales()
2040 const SCEV *Mul = getMulExpr(Scale, Ops[i]); in getAddExpr() local
2042 return Mul; in getAddExpr()
2043 Ops[i] = Mul; in getAddExpr()
2173 const SCEVMulExpr *Mul = cast<SCEVMulExpr>(Ops[Idx]); in getAddExpr() local
2174 for (unsigned MulOp = 0, e = Mul->getNumOperands(); MulOp != e; ++MulOp) { in getAddExpr()
2175 const SCEV *MulOpSCEV = Mul->getOperand(MulOp); in getAddExpr()
2181 const SCEV *InnerMul = Mul->getOperand(MulOp == 0); in getAddExpr()
2182 if (Mul->getNumOperands() != 2) { in getAddExpr()
2185 SmallVector<const SCEV *, 4> MulOps(Mul->op_begin(), in getAddExpr()
2186 Mul->op_begin()+MulOp); in getAddExpr()
2187 MulOps.append(Mul->op_begin()+MulOp+1, Mul->op_end()); in getAddExpr()
2216 const SCEV *InnerMul1 = Mul->getOperand(MulOp == 0); in getAddExpr()
2217 if (Mul->getNumOperands() != 2) { in getAddExpr()
2218 SmallVector<const SCEV *, 4> MulOps(Mul->op_begin(), in getAddExpr()
2219 Mul->op_begin()+MulOp); in getAddExpr()
2220 MulOps.append(Mul->op_begin()+MulOp+1, Mul->op_end()); in getAddExpr()
2454 const SCEV *Mul = getMulExpr(Ops[0], AddOp); in getMulExpr() local
2455 if (!isa<SCEVMulExpr>(Mul)) AnyFolded = true; in getMulExpr()
2456 NewOps.push_back(Mul); in getMulExpr()
2483 while (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(Ops[Idx])) { in getMulExpr() local
2487 Ops.append(Mul->op_begin(), Mul->op_end()); in getMulExpr()
2777 const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(LHS); in getUDivExactExpr() local
2778 if (!Mul) in getUDivExactExpr()
2784 if (const auto *LHSCst = dyn_cast<SCEVConstant>(Mul->getOperand(0))) { in getUDivExactExpr()
2787 Operands.append(Mul->op_begin() + 1, Mul->op_end()); in getUDivExactExpr()
2802 Operands.append(Mul->op_begin() + 1, Mul->op_end()); in getUDivExactExpr()
2805 Mul = dyn_cast<SCEVMulExpr>(LHS); in getUDivExactExpr()
2806 if (!Mul) in getUDivExactExpr()
2812 for (int i = 0, e = Mul->getNumOperands(); i != e; ++i) { in getUDivExactExpr()
2813 if (Mul->getOperand(i) == RHS) { in getUDivExactExpr()
2815 Operands.append(Mul->op_begin(), Mul->op_begin() + i); in getUDivExactExpr()
2816 Operands.append(Mul->op_begin() + i + 1, Mul->op_end()); in getUDivExactExpr()
4236 if (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(S)) { in getRange() local
4237 ConstantRange X = getRange(Mul->getOperand(0), SignHint); in getRange()
4238 for (unsigned i = 1, e = Mul->getNumOperands(); i != e; ++i) in getRange()
4239 X = X.multiply(getRange(Mul->getOperand(i), SignHint)); in getRange()
4240 return setRange(Mul, SignHint, ConservativeResult.intersectWith(X)); in getRange()
4545 case Instruction::Mul: { in createSCEV()
4549 if (!U || U->getOpcode() != Instruction::Mul) { in createSCEV()
4875 if (const SCEVMulExpr *Mul = dyn_cast<SCEVMulExpr>(TCMul)) in getSmallConstantTripMultiple() local
4876 TCMul = Mul->getOperand(0); in getSmallConstantTripMultiple()
8597 if (auto *Mul = dyn_cast<SCEVMulExpr>(S)) { in follow() local
8600 for (auto Op : Mul->operands()) { in follow()