public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/47990] New: Missed promotion of double precision constants to single precision for -funsafe-math-optimizations
@ 2011-03-04 14:42 rguenth at gcc dot gnu.org
  2011-03-04 15:43 ` [Bug middle-end/47990] " joseph at codesourcery dot com
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-03-04 14:42 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47990

           Summary: Missed promotion of double precision constants to
                    single precision for -funsafe-math-optimizations
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Keywords: missed-optimization
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: rguenth@gcc.gnu.org


In 482.sphinx3 we have code like

float foo (float x, float y)
{
  return ((int)(x/y + 0.5)) * y;
}

where the addition of 0.5 is performed in double precision.  With
-funsafe-math-optimizations we can demote 0.5 to single precision
(its exactly representable) also because the result of the addition
does not take part of further floating point computation but is
immediately converted to int.

The unsafe part of this optimization occurs when x/y is FLT_MAX
and we'd truncate to a 64bit integer type.  For 32bit integers
it would probably be safe to do this optimization unconditionally.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-12-26 13:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-04 14:42 [Bug middle-end/47990] New: Missed promotion of double precision constants to single precision for -funsafe-math-optimizations rguenth at gcc dot gnu.org
2011-03-04 15:43 ` [Bug middle-end/47990] " joseph at codesourcery dot com
2011-08-01 13:07 ` rguenth at gcc dot gnu.org
2021-12-26 13:00 ` pinskia at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).