On Sun, May 20, 2018 at 9:45 PM Yuri Gribov <tetra2...@gmail.com> wrote:

> On Sun, May 20, 2018 at 1:01 PM, Alexander Monakov <amona...@ispras.ru>
wrote:
> > On Sun, 20 May 2018, Yuri Gribov wrote:
> >
> >> Hi all,
> >>
> >> This fixes PR 85822 by removing incorrect reversal of condition in VRP
> >> assertion. Bootstrapped and regtested on x86_64.
> >>
> >> Ok for trunk?
> >
> > Please address the following issues:
> >
> > Use correct PR reference in Changelog.

> Ah, right.

> > Double-check the comment before the function, I think NE_EXPR and
EQ_EXPR
> > should be swapped there.

> Thanks, fixed.

> > Address Richard's request from the bug report:
> >
> >>> Ok, please make sure to say why not doing anything special for
negative
> >>> numbers is ok.

> True, I didn't notice the "to say" part :/

> Comparison
>    (a & 11...100...0) == XX...X00..0  // RHS XX...X is covered by
> 11...100...0 mask i.e. (RHS & MASK) == RHS
> means that 'a' can have values
>    XX...X00...00
>    XX...X00...01
>    XX...X00...10
>    ...
>    XX...X11...11
> Both for positive and negative, signed and unsigned RHSs the first
> number is less than the last one so we can derive
>    XX...X00...00 <= a
>    a <= XX...X11...11
> in all cases.

> > Note there are at least three special cases that are handled
incorrectly either
> > before or after the patch:
> >
> >  - not two's complement integers

> Commented by Richard.

> >  - mask being 0
> >  - mask being ~0

> Done (AND with 0 or -1 is removed during Gimple generation so I didn't
> bother to optimize this special case, just bail out).

OK.

Thanks,
Richard.

> -Y

Reply via email to