https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82447

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to amker from comment #4)
> (In reply to Jakub Jelinek from comment #2)
> > Indeed.  But when the body is:
> >         sum += a[size - 1 - i];
> > while base 128U with step -1U is considered, it isn't found as the cheapest
> > for some reason either.
> 
> On 64-bit targets, candidate [128, -1] is added in unsigned int type, while
> address IV has pointer type.  IVOPTs simply skips the candidate because it
> has smaller precision than the IV use.

Yeah, but can't we also add [128UL, -1UL] candidate if we see there are IVs of
that bitsize?  Conversion from that to the unsigned int IV is cheap.

Reply via email to