Lines Matching defs:ScaleReg
2830 // An AddrMode is (BaseGV + BaseReg + BaseOffs + ScaleReg * Scale) so it is
3536 bool matchScaledValue(Value *ScaleReg, int64_t Scale, unsigned Depth);
3845 // different offsets will be used as ScaleReg.
4197 /// Try adding ScaleReg*Scale to the current addressing mode.
4200 bool AddressingModeMatcher::matchScaledValue(Value *ScaleReg, int64_t Scale,
4202 // If Scale is 1, then this is the same as adding ScaleReg to the addressing
4205 return matchAddr(ScaleReg, Depth);
4213 if (AddrMode.Scale != 0 && AddrMode.ScaledReg != ScaleReg)
4221 TestAddrMode.ScaledReg = ScaleReg;
4230 // Okay, we decided that we can add ScaleReg+Scale to AddrMode. Check now
4231 // to see if ScaleReg is actually X+C. If so, we can turn this into adding
4236 if (isa<Instruction>(ScaleReg) && // not a constant expr.
4237 match(ScaleReg, m_Add(m_Value(AddLHS), m_ConstantInt(CI))) &&
4238 !isIVIncrement(ScaleReg, &LI) && CI->getValue().isSignedIntN(64)) {
4246 AddrModeInsts.push_back(cast<Instruction>(ScaleReg));
4279 // 1. ScaleReg is an inductive variable;
4290 if (auto IVStep = GetConstantStep(ScaleReg)) {
5355 // BaseReg and ScaleReg (global addresses are always available, as are any