On 2014.11.20 at 19:44 +0100, Jakub Jelinek wrote:
> On Thu, Nov 20, 2014 at 07:41:43PM +0100, Markus Trippelsdorf wrote:
> > 2014-11-20  Markus Trippelsdorf  <mar...@trippelsdorf.de>
> > 
> >     * config/rs6000/rs6000.c (includes_rldic_lshift_p): Cast 0 to unsigned.
> >     (includes_rldicr_lshift_p): Likewise.
> > 
> > diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
> > index a9604cf3fa97..d7958b33ba1a 100644
> > --- a/gcc/config/rs6000/rs6000.c
> > +++ b/gcc/config/rs6000/rs6000.c
> > @@ -16197,10 +16197,10 @@ includes_rldic_lshift_p (rtx shiftop, rtx andop)
> >        unsigned HOST_WIDE_INT c, lsb, shift_mask;
> >  
> >        c = INTVAL (andop);
> > -      if (c == 0 || c == ~0)
> > +      if (c == 0 || c == ~(unsigned HOST_WIDE_INT) 0)
> >     return 0;
> >  
> > -      shift_mask = ~0;
> > +      shift_mask = ~(unsigned HOST_WIDE_INT) 0;
> >        shift_mask <<= INTVAL (shiftop);
> >  
> >        /* Find the least significant one bit.  */
> > @@ -16235,7 +16235,7 @@ includes_rldicr_lshift_p (rtx shiftop, rtx andop)
> >      {
> >        unsigned HOST_WIDE_INT c, lsb, shift_mask;
> >  
> > -      shift_mask = ~0;
> > +      shift_mask = ~(unsigned HOST_WIDE_INT) 0;
> >        shift_mask <<= INTVAL (shiftop);
> >        c = INTVAL (andop);
> 
> You could use ~HOST_WIDE_INT_UC (0) in all the 3 cases.

Or better still HOST_WIDE_INT_M1U.

-- 
Markus

Reply via email to