This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Bug in builtin_floor optimization



On Aug 23, 2005, at 9:53 AM, Richard Henderson wrote:


On Tue, Aug 23, 2005 at 09:28:50AM -0600, Roger Sayle wrote:
Good catch.  This is indeed a -ffast-math (or more precisely a
flag_unsafe_math_optimizations) transformation.  I'd prefer to
keep these transformations with -ffast-math, as Jan described them
as significantly helping SPEC's mesa when they were added.

Are you sure it was "(float)floor(d)"->"floorf((float)d)" that helped mesa and not "(float)floor((double)f)"->"floorf(f)" ?

All the floor calls in mesa seem to be of the form (int)floor((double)f)
or (f - floor((double)f)). (the casts to double are implicit, actually.)


It wouldn't bother me if the first transformation went away
even for -ffast-math.  It seems egregeously wrong.

I think I'd prefer this, given that it is not useful in mesa. Will put together a patch.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]