On Mon, Mar 31, 2025 at 11:25:27AM +0200, Richard Biener wrote:
> > >   PR tree-optimization/119532
> > >   * tree-tailcall.cc (process_assignment): FAIL for fixed-point
> > >   typed functions.
> > > 
> > >   * gcc.dg/torture/pr119532.c: New testcase.
> > 
> > So shouldn't we punt in that case just for the problematic operations
> > (i.e. NEGATE_EXPR and MINUS_EXPR)?
> > Aren't the others ok as is?
> 
> We are associating the expression which at least breaks with
> saturating fixed-point.  We are also rejecting FP types
> without -fassociative-math, not trying to special cases some
> maybe working cases.
> 
> So, I'm not sure the code behaves correctly even when not
> running into the build_minus_one_cst case for _Fract types.
> We'd at least need to disable TYPE_SATURATING.
> 
> I can change to just disable TYPE_SATURATING and
> !ALL_SCALAR_ACCUM_MODE_P (TYPE_MODE (type)) (there's no TYPE-based
> test for _Fract it seems?).  Would you prefer that?
> Association could still affect rounding, and I don't think we
> document behavior of -fassociative-math on fixed-point?

I guess I don't know enough about fixed point types, so
let's go with your original patch, if anyone actually interested
in those types comes with something better, they can.

        Jakub

Reply via email to