On Tue, 2023-11-14 at 11:44 +0100, Richard Biener wrote:
> > diff --git a/gcc/simplify-rtx.cc b/gcc/simplify-rtx.cc
> > index 2d2e5a3c1ca..f3745d86aea 100644
> > --- a/gcc/simplify-rtx.cc
> > +++ b/gcc/simplify-rtx.cc
> > @@ -4392,7 +4392,7 @@ simplify_ashift:
> >            real_convert (&f1, mode, CONST_DOUBLE_REAL_VALUE (trueop1));
> >            rtx tmp = simplify_gen_unary (ABS, mode, op0, mode);
> >            if (REAL_VALUE_NEGATIVE (f1))
> > -           tmp = simplify_gen_unary (NEG, mode, tmp, mode);
> > +           tmp = simplify_unary_operation (NEG, mode, tmp, mode);
> >           return tmp;
> >         }
> 
> shouldn't that be when either the ABS or the NEG simplify?

Simplify (copysign x, POSTIVE_CONST) to (abs x) is an optimization.  So
for a positive f1, tmp will just be (abs x) and we return it.

> And I wonder when that happens - I suppose when op0 is CONST_DOUBLE only?

Yes, it's Andrew's intention.

-- 
Xi Ruoyao <xry...@xry111.site>
School of Aerospace Science and Technology, Xidian University

Reply via email to