[Bug c++/41094] Erroneous optimization of pow() with -ffast-math

2009-08-24 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2009-08-24 10:03 ---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to fail||4.3.4 4.4.1
  Known to work||4.3.5 4.4.2 4.5.0
 Resolution||FIXED


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



[Bug c++/41094] Erroneous optimization of pow() with -ffast-math

2009-08-24 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2009-08-24 09:56 ---
Subject: Bug 41094

Author: rguenth
Date: Mon Aug 24 09:56:30 2009
New Revision: 151052

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=151052
Log:
2009-08-24  Richard Guenther  

PR middle-end/41094
* builtins.c (fold_builtin_pow): Fold pow(pow(x,y),z) to
pow(x,y*z) only if x is nonnegative.

* gcc.dg/torture/pr41094.c: New testcase.
* gcc.dg/torture/builtin-power-1.c: Adjust.
* gcc.dg/builtins-10.c: Likewise.

Added:
branches/gcc-4_3-branch/gcc/testsuite/gcc.dg/torture/pr41094.c
Modified:
branches/gcc-4_3-branch/gcc/ChangeLog
branches/gcc-4_3-branch/gcc/builtins.c
branches/gcc-4_3-branch/gcc/testsuite/ChangeLog
branches/gcc-4_3-branch/gcc/testsuite/gcc.dg/builtins-10.c
branches/gcc-4_3-branch/gcc/testsuite/gcc.dg/torture/builtin-power-1.c


-- 


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



[Bug c++/41094] Erroneous optimization of pow() with -ffast-math

2009-08-24 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2009-08-24 09:52 ---
Subject: Bug 41094

Author: rguenth
Date: Mon Aug 24 09:52:03 2009
New Revision: 151051

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=151051
Log:
2009-08-24  Richard Guenther  

PR middle-end/41094
* builtins.c (fold_builtin_pow): Fold pow(pow(x,y),z) to
pow(x,y*z) only if x is nonnegative.

* gcc.dg/torture/pr41094.c: New testcase.
* gcc.dg/torture/builtin-power-1.c: Adjust.
* gcc.dg/builtins-10.c: Likewise.

Added:
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/torture/pr41094.c
Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/builtins.c
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/builtins-10.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/torture/builtin-power-1.c


-- 


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



[Bug c++/41094] Erroneous optimization of pow() with -ffast-math

2009-08-18 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2009-08-18 13:40 ---
Subject: Bug 41094

Author: rguenth
Date: Tue Aug 18 13:40:18 2009
New Revision: 150874

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=150874
Log:
2009-08-18  Richard Guenther  

PR middle-end/41094
* builtins.c (fold_builtin_pow): Fold pow(pow(x,y),z) to
pow(x,y*z) only if x is nonnegative.

* gcc.dg/torture/pr41094.c: New testcase.
* gcc.dg/torture/builtin-power-1.c: Adjust.
* gcc.dg/builtins-10.c: Likewise.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr41094.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/builtins.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/builtins-10.c
trunk/gcc/testsuite/gcc.dg/torture/builtin-power-1.c


-- 


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



[Bug c++/41094] Erroneous optimization of pow() with -ffast-math

2009-08-18 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2009-08-18 09:20 ---
Looks like a bug in fold.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Keywords||wrong-code
   Last reconfirmed|-00-00 00:00:00 |2009-08-18 09:20:14
   date||


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



[Bug c++/41094] Erroneous optimization of pow() with -ffast-math

2009-08-17 Thread paolo dot carlini at oracle dot com


--- Comment #1 from paolo dot carlini at oracle dot com  2009-08-17 18:38 
---
Note, this isn't C++ specific:

int main()
{
  double x = -10.0;
  __builtin_printf("%g\n", __builtin_pow(x * x, 0.25));
}

Richard, can you have a look? It's hot here ;) but first blush I don't see why
fast-math is so special here...


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org


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