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

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to HaoChen Gui from comment #8)
> (In reply to Jakub Jelinek from comment #7)
> > Sure, but you don't want to do that at least if flag_trapping_math.
> > Otherwise, the predicate would be tree_expr_signaling_nan_p and real_nan
> > function with "", 1 as the middle 2 arguments can create it.  But note that
> > nothing in match.pd does that right now, so I don't think we should do it in
> > this case either.
> 
> If either of arguments is sNaN, fmin/max should return a qNaN. So I really
> want to create a pattern in match.pd to do this. It needs to create a qNaN

A sNaN should primarily raise an exception or raise a signal when used.
So better not to fold it.
Given that we don't fold anything else with sNaN, starting from sNaN + whatever
etc., just folding it for something so rare as fmin/fmax would be weird.

Reply via email to