Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:Descale

829 /// Descale - Return a value X such that Val = X * Scale, or null if none.  If
831 Value *InstCombiner::Descale(Value *Val, APInt Scale, bool &NoSignedWrap) {
832 assert(isa<IntegerType>(Val->getType()) && "Can only descale integers!");
882 // If Op is a constant divisible by Scale then descale to the quotient.
968 // Op is sign-extended from a smaller type, descale in the smaller type.
971 // Suppose Op = sext X, and we descale X as Y * SmallScale. We want to
972 // descale Op as (sext Y) * Scale. In order to have
990 // Op is truncated from a larger type, descale in the larger type.
991 // Suppose Op = trunc X, and we descale X as Y * sext Scale. Then
1014 // We know that we can successfully descale, so from here on we can safely
1268 if (Value *NewIdx = Descale(Idx, APInt(BitWidth, Scale), NSW)) {
1303 if (Value *NewIdx = Descale(Idx, APInt(BitWidth, Scale), NSW)) {