Lines Matching refs:Scale
174 int64_t Scale;
178 Scale == Other.Scale;
189 /// "A*V + B", where A and B are constant integers. Return the scale and offset
196 static Value *GetLinearExpression(Value *V, APInt &Scale, APInt &Offset,
204 Scale = 1;
213 assert(Scale == 0 && "Constant values don't have a scale");
229 V = GetLinearExpression(BOp->getOperand(0), Scale, Offset, Extension,
234 V = GetLinearExpression(BOp->getOperand(0), Scale, Offset, Extension,
237 Scale *= RHSC->getValue();
240 V = GetLinearExpression(BOp->getOperand(0), Scale, Offset, Extension,
243 Scale <<= RHSC->getValue().getLimitedValue();
255 unsigned OldWidth = Scale.getBitWidth();
257 Scale = Scale.trunc(SmallWidth);
261 Value *Result = GetLinearExpression(CastOp, Scale, Offset, Extension, DL,
263 Scale = Scale.zext(OldWidth);
272 Scale = 1;
281 /// The scaled symbolic offsets (represented by pairs of a Value* and a scale in
367 uint64_t Scale = DL.getTypeAllocSize(*GTI);
381 // The GEP index scale ("Scale") scales C1*V+C2, yielding (C1*V+C2)*Scale.
382 // This gives us an aggregate computation of (C1*Scale)*V + C2*Scale.
383 BaseOffs += IndexOffset.getSExtValue()*Scale;
384 Scale *= IndexScale.getSExtValue();
387 // scale into it. For example, we want to handle:
393 Scale += VarIndices[i].Scale;
399 // Make sure that we have a scale that makes sense for this target's
402 Scale <<= ShiftBits;
403 Scale = (int64_t)Scale >> ShiftBits;
406 if (Scale) {
408 static_cast<int64_t>(Scale)};
1185 // don't need std::abs here (even if the scale's negative) as we'll
1187 Modulo |= (uint64_t) GEP1VariableIndices[i].Scale;
1208 int64_t Scale = GEP1VariableIndices[i].Scale;
1210 (SignKnownZero && Scale >= 0) ||
1211 (SignKnownOne && Scale < 0);
1565 int64_t Scale = Src[i].Scale;
1574 // If we found it, subtract off Scale V's from the entry in Dest. If it
1576 if (Dest[j].Scale != Scale)
1577 Dest[j].Scale -= Scale;
1580 Scale = 0;
1585 if (Scale) {
1586 VariableGEPIndex Entry = { V, Extension, -Scale };