Home | History | Annotate | Download | only in Scalar

Lines Matching refs:Scale

236   /// The scale of any complex addressing.
237 int64_t Scale;
244 /// when Scale is not zero.
253 : BaseGV(0), BaseOffset(0), HasBaseReg(false), Scale(0), ScaledReg(0),
415 if (Scale != 0) {
417 OS << Scale << "*reg(";
1285 bool HasBaseReg, int64_t Scale) {
1288 return TTI.isLegalAddressingMode(AccessTy, BaseGV, BaseOffset, HasBaseReg, Scale);
1300 if (Scale != 0 && HasBaseReg && BaseOffset != 0)
1303 // ICmp only supports no scale or a -1 scale, as we can "fold" a -1 scale by
1305 if (Scale != 0 && Scale != -1)
1315 if (Scale == 0)
1326 return !BaseGV && Scale == 0 && BaseOffset == 0;
1330 return !BaseGV && (Scale == 0 || Scale == -1) && BaseOffset == 0;
1339 int64_t Scale) {
1351 Scale) &&
1352 isLegalUse(TTI, Kind, AccessTy, BaseGV, MaxOffset, HasBaseReg, Scale);
1359 F.BaseOffset, F.HasBaseReg, F.Scale);
1370 // base and a scale.
1371 int64_t Scale = Kind == LSRUse::ICmpZero ? -1 : 1;
1373 // Canonicalize a scale of 1 to a base register if the formula doesn't
1375 if (!HasBaseReg && Scale == 1) {
1376 Scale = 0;
1380 return isLegalUse(TTI, Kind, AccessTy, BaseGV, BaseOffset, HasBaseReg, Scale);
1391 // base and a scale.
1402 // base and a scale.
1403 int64_t Scale = Kind == LSRUse::ICmpZero ? -1 : 1;
1406 BaseOffset, HasBaseReg, Scale);
1994 // strides could be a legal scale.
2018 int64_t Scale = C->getSExtValue();
2021 /*HasBaseReg=*/ false, Scale))
2023 Scale = -Scale;
2026 /*HasBaseReg=*/ false, Scale))
2201 F.Scale == OrigF.Scale &&
3267 /// GenerateICmpZeroScales - For ICmpZero, check to see if we can scale up
3306 // Check that this scale is legal.
3352 if (Base.Scale != 0) return;
3359 Base.Scale = Factor;
3361 // Check whether this scale is going to be legal.
3379 // For each addrec base reg, apply the scale, if possible.
3559 int64_t Offset = (uint64_t)F.BaseOffset + Imm * (uint64_t)F.Scale;
3571 // If the new scale is a constant in a register, and adding the constant
3577 (C->getValue()->getValue().abs() * APInt(BitWidth, F.Scale))
3867 if (F.BaseOffset == 0 || F.Scale != 0)
4312 if (F.Scale != 0) {
4323 // scale, which we'll implement by inserting it into the other operand
4325 assert(F.Scale == -1 &&
4326 "The only scale supported by ICmpZero uses is -1!");
4329 // Otherwise just expand the scaled register and an explicit scale,
4340 SE.getConstant(ScaledS->getType(), F.Scale));
4407 "a scale at the same time!");
4408 if (F.Scale == -1) {
4418 assert(F.Scale == 0 &&
4420 "a scale at the same time!");