Lines Matching defs:ScaleReg
3117 // An AddrMode is (BaseGV + BaseReg + BaseOffs + ScaleReg * Scale) so it is
3823 bool matchScaledValue(Value *ScaleReg, int64_t Scale, unsigned Depth);
4132 // different offsets will be used as ScaleReg.
4484 /// Try adding ScaleReg*Scale to the current addressing mode.
4487 bool AddressingModeMatcher::matchScaledValue(Value *ScaleReg, int64_t Scale,
4489 // If Scale is 1, then this is the same as adding ScaleReg to the addressing
4492 return matchAddr(ScaleReg, Depth);
4500 if (AddrMode.Scale != 0 && AddrMode.ScaledReg != ScaleReg)
4508 TestAddrMode.ScaledReg = ScaleReg;
4517 // Okay, we decided that we can add ScaleReg+Scale to AddrMode. Check now
4518 // to see if ScaleReg is actually X+C. If so, we can turn this into adding
4523 if (isa<Instruction>(ScaleReg) && // not a constant expr.
4524 match(ScaleReg, m_Add(m_Value(AddLHS), m_ConstantInt(CI))) &&
4525 !isIVIncrement(ScaleReg, &LI) && CI->getValue().isSignedIntN(64)) {
4533 AddrModeInsts.push_back(cast<Instruction>(ScaleReg));
4566 // 1. ScaleReg is an inductive variable;
4577 if (auto IVStep = GetConstantStep(ScaleReg)) {
5640 // BaseReg and ScaleReg (global addresses are always available, as are any