This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/32183] -fast-math causes a missed optimization to happen
- From: "hjl at lucon dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 2 Jun 2007 00:10:56 -0000
- Subject: [Bug tree-optimization/32183] -fast-math causes a missed optimization to happen
- References: <bug-32183-682@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #5 from hjl at lucon dot org 2007-06-02 00:10 -------
(In reply to comment #3)
> (In reply to comment #2)
> > Is that OK to transform
> >
> > float sf;
> > ...
> > sf = 500 * sf;
> > for (i = 0; i < ceplen; i++)
> > sum[i] *= sf;
> >
> > to
> >
> > for (i = 0; i < ceplen; i++)
> > sum[i] = (sum[i]* 500)*sf;
> >
> > You can certainly get the different results when sf is small and sum[i] is
> > large.
>
> with -ffast-math, this transformation is ok (although it does not seem to make
> sense to do it, it moves a multiplication into a loop).
>
We moved a multiply, which is outside of loop in source, into
a loop. I don't think gcc should do it with any optimization
flag, including -ffast-math.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32183