[Bug tree-optimization/46728] GCC does not generate fmadd for pow (x, 0.75)+y on powerpc

2012-03-12 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46728

--- Comment #16 from William J. Schmidt wschmidt at gcc dot gnu.org 
2012-03-12 12:37:11 UTC ---
(In reply to comment #15)
 I see this test failing on powerpc-apple-darwin8 (32b G4, ppc7400):
 http://gcc.gnu.org/ml/gcc-testresults/2012-03/msg01296.html
 Is this specific to 64b, or should it also work for 32b ppc?

It looks like these tests should be skipped for darwin.  The last three
failures are due to a lack of __builtin_cbrt for that target.  The execution
failures are due to -fpowerpc-gpopt which apparently generates an illegal
instruction for that target.  I'll modify these tests to add skips for
powerpc*-*-darwin*.


[Bug tree-optimization/46728] GCC does not generate fmadd for pow (x, 0.75)+y on powerpc

2012-03-12 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46728

--- Comment #17 from William J. Schmidt wschmidt at gcc dot gnu.org 
2012-03-12 18:26:52 UTC ---
Author: wschmidt
Date: Mon Mar 12 18:26:48 2012
New Revision: 185260

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=185260
Log:
2012-03-12  Bill Schmidt  wschm...@linux.vnet.ibm.com

PR tree-optimization/46728
* gcc.target/powerpc/pr46728-4.c: Skip for powerpc*-*-darwin*.
* gcc.target/powerpc/pr46728-5.c: Likewise.
* gcc.target/powerpc/pr46728-8.c: Likewise.
* gcc.target/powerpc/pr46728-10.c: Likewise.
* gcc.target/powerpc/pr46728-11.c: Likewise.
* gcc.target/powerpc/pr46728-13.c: Likewise.
* gcc.target/powerpc/pr46728-14.c: Likewise.
* gcc.target/powerpc/pr46728-15.c: Likewise.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-10.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-11.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-13.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-14.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-15.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-4.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-5.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-8.c


[Bug tree-optimization/46728] GCC does not generate fmadd for pow (x, 0.75)+y on powerpc

2012-03-12 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46728

--- Comment #18 from William J. Schmidt wschmidt at gcc dot gnu.org 
2012-03-12 19:45:49 UTC ---
Author: wschmidt
Date: Mon Mar 12 19:45:43 2012
New Revision: 185265

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=185265
Log:
2012-03-12  Bill Schmidt  wschm...@linux.vnet.ibm.com

PR tree-optimization/46728
* gcc.target/powerpc/pr46728-4.c: Use preferred syntax.
* gcc.target/powerpc/pr46728-5.c: Likewise.
* gcc.target/powerpc/pr46728-8.c: Likewise.
* gcc.target/powerpc/pr46728-10.c: Likewise.
* gcc.target/powerpc/pr46728-11.c: Likewise.
* gcc.target/powerpc/pr46728-13.c: Likewise.
* gcc.target/powerpc/pr46728-14.c: Likewise.
* gcc.target/powerpc/pr46728-15.c: Likewise.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-10.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-11.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-13.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-14.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-15.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-4.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-5.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-8.c


[Bug tree-optimization/46728] GCC does not generate fmadd for pow (x, 0.75)+y on powerpc

2012-03-11 Thread fang at csl dot cornell.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46728

--- Comment #15 from David Fang fang at csl dot cornell.edu 2012-03-12 
02:26:40 UTC ---
I see this test failing on powerpc-apple-darwin8 (32b G4, ppc7400):
http://gcc.gnu.org/ml/gcc-testresults/2012-03/msg01296.html
Is this specific to 64b, or should it also work for 32b ppc?


[Bug tree-optimization/46728] GCC does not generate fmadd for pow (x, 0.75)+y on powerpc

2011-11-11 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46728

William J. Schmidt wschmidt at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #14 from William J. Schmidt wschmidt at gcc dot gnu.org 
2011-11-11 17:11:18 UTC ---
Fixed.


[Bug tree-optimization/46728] GCC does not generate fmadd for pow (x, 0.75)+y on powerpc

2011-06-07 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46728

--- Comment #12 from William J. Schmidt wschmidt at gcc dot gnu.org 
2011-06-07 15:12:07 UTC ---
Author: wschmidt
Date: Tue Jun  7 15:12:04 2011
New Revision: 174752

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174752
Log:
2011-06-07  Bill Schmidt  wschm...@linux.vnet.ibm.com

PR tree-optimization/46728
* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
to use gimple_val_nonnegative_real_p.
* gimple-fold.c (gimple_val_nonnegative_real_p): New function.
* gimple.h (gimple_val_nonnegative_real_p): New declaration.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimple-fold.c
trunk/gcc/gimple.h
trunk/gcc/tree-ssa-math-opts.c


[Bug tree-optimization/46728] GCC does not generate fmadd for pow (x, 0.75)+y on powerpc

2011-06-07 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46728

--- Comment #13 from William J. Schmidt wschmidt at gcc dot gnu.org 
2011-06-07 15:24:29 UTC ---
Work is complete on the planned changes.  Note there is an open regression
PR49302 that has yet to be addressed.


[Bug tree-optimization/46728] GCC does not generate fmadd for pow (x, 0.75)+y on powerpc

2011-06-06 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46728

--- Comment #11 from William J. Schmidt wschmidt at gcc dot gnu.org 
2011-06-06 14:27:44 UTC ---
Author: wschmidt
Date: Mon Jun  6 14:27:41 2011
New Revision: 174701

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174701
Log:
2011-06-06  Bill Schmidt  wschm...@linux.vnet.ibm.com

PR tree-optimization/46728
* builtins.c (powi_table): Remove.
(powi_lookup_cost): Remove.
(powi_cost): Remove.
(expand_powi_1): Remove.
(expand_powi): Remove.
(expand_builtin_pow_root): Remove.
(expand_builtin_pow): Remove.
(expand_builtin_powi): Eliminate handling of constant exponent.
(expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/builtins.c


[Bug tree-optimization/46728] GCC does not generate fmadd for pow (x, 0.75)+y on powerpc

2011-05-30 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46728

--- Comment #10 from William J. Schmidt wschmidt at gcc dot gnu.org 
2011-05-30 17:12:58 UTC ---
Author: wschmidt
Date: Mon May 30 17:12:53 2011
New Revision: 174446

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174446
Log:
2011-05-30  Bill Schmidt  wschm...@linux.vnet.ibm.com

PR tree-optimization/46728
* tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
(build_and_insert_binop): New.
(gimple_expand_builtin_pow): Reorder args for
build_and_insert_call; use build_and_insert_binop; add more
optimizations for fractional exponents.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-math-opts.c


[Bug tree-optimization/46728] GCC does not generate fmadd for pow (x, 0.75)+y on powerpc

2011-05-27 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46728

--- Comment #8 from William J. Schmidt wschmidt at gcc dot gnu.org 2011-05-27 
19:11:22 UTC ---
Author: wschmidt
Date: Fri May 27 19:11:19 2011
New Revision: 174349

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174349
Log:
2011-05-27  Bill Schmidt  wschm...@linux.vnet.ibm.com

PR tree-optimization/46728
* tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
(powi_as_mults): Add gimple_set_location.
(build_and_insert_call): New.
(gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
0.5, 0.25, 0.75, 1./3., or 1./6.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-math-opts.c


[Bug tree-optimization/46728] GCC does not generate fmadd for pow (x, 0.75)+y on powerpc

2011-05-27 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46728

--- Comment #9 from William J. Schmidt wschmidt at gcc dot gnu.org 2011-05-27 
19:39:11 UTC ---
Author: wschmidt
Date: Fri May 27 19:39:07 2011
New Revision: 174358

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174358
Log:
2011-05-27  Bill Schmidt  wschm...@linux.vnet.ibm.com

PR tree-optimization/46728
* gcc.target/powerpc/pr46728-1.c: New.
* gcc.target/powerpc/pr46728-2.c: New.
* gcc.target/powerpc/pr46728-3.c: New.
* gcc.target/powerpc/pr46728-4.c: New.
* gcc.target/powerpc/pr46728-5.c: New.
* gcc.dg/pr46728-6.c: New.
* gcc.target/powerpc/pr46728-7.c: New.
* gcc.target/powerpc/pr46728-8.c: New.
* gcc.dg/pr46728-9.c: New.
* gcc.target/powerpc/pr46728-10.c: New.
* gcc.target/powerpc/pr46728-11.c: New.
* gcc.dg/pr46728-12.c: New.
* gcc.target/powerpc/pr46728-13.c: New.
* gcc.target/powerpc/pr46728-14.c: New.
* gcc.target/powerpc/pr46728-15.c: New.
* gcc.target/powerpc/pr46728-16.c: New.


Added:
trunk/gcc/testsuite/gcc.dg/pr46728-12.c
trunk/gcc/testsuite/gcc.dg/pr46728-6.c
trunk/gcc/testsuite/gcc.dg/pr46728-9.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-1.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-10.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-11.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-13.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-14.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-15.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-16.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-2.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-3.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-4.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-5.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-7.c
trunk/gcc/testsuite/gcc.target/powerpc/pr46728-8.c
Modified:
trunk/gcc/testsuite/ChangeLog


[Bug tree-optimization/46728] GCC does not generate fmadd for pow (x, 0.75)+y on powerpc

2011-05-25 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46728

--- Comment #6 from William J. Schmidt wschmidt at gcc dot gnu.org 2011-05-25 
13:35:58 UTC ---
Author: wschmidt
Date: Wed May 25 13:35:53 2011
New Revision: 174196

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174196
Log:
2011-05-25  Bill Schmidt  wschm...@linux.vnet.ibm.com

PR tree-optimization/46728
* tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
(execute_cse_sincos): Add switch case for BUILT_IN_POW.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-math-opts.c


[Bug tree-optimization/46728] GCC does not generate fmadd for pow (x, 0.75)+y on powerpc

2011-05-25 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46728

--- Comment #7 from William J. Schmidt wschmidt at gcc dot gnu.org 2011-05-25 
13:42:14 UTC ---
Patch 2 transforms pow(x,n) to multiplies for integer n, similar to patch 1 for
powi(x,n).


[Bug tree-optimization/46728] GCC does not generate fmadd for pow (x, 0.75)+y on powerpc

2011-05-24 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46728

--- Comment #4 from William J. Schmidt wschmidt at gcc dot gnu.org 2011-05-24 
18:02:27 UTC ---
Author: wschmidt
Date: Tue May 24 18:02:22 2011
New Revision: 174129

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174129
Log:
2011-05-24  Bill Schmidt  wschm...@linux.vnet.ibm.com

PR tree-optimization/46728
* tree-ssa-math-opts.c (powi_table): New.
(powi_lookup_cost): New.
(powi_cost): New.
(powi_as_mults_1): New.
(powi_as_mults): New.
(gimple_expand_builtin_powi): New.
(execute_cse_sincos): Add switch case for BUILT_IN_POWI.
(gate_cse_sincos): Remove sincos/cexp restriction.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-math-opts.c


[Bug tree-optimization/46728] GCC does not generate fmadd for pow (x, 0.75)+y on powerpc

2011-05-24 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46728

--- Comment #5 from William J. Schmidt wschmidt at gcc dot gnu.org 2011-05-24 
18:06:04 UTC ---
Above is first of a series of patches.  It handles converting __builtin_powi to
a sequence of multiplies in the cse_sincos gimple pass.  More to come.


[Bug tree-optimization/46728] GCC does not generate fmadd for pow (x, 0.75)+y on powerpc

2011-04-01 Thread meissner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46728

Michael Meissner meissner at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
Version|4.6.0   |4.7.0
 AssignedTo|unassigned at gcc dot   |wschmidt at gcc dot gnu.org
   |gnu.org |


[Bug tree-optimization/46728] GCC does not generate fmadd for pow (x, 0.75)+y on powerpc

2011-02-08 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46728

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||missed-optimization
   Target Milestone|4.6.0   |---
Summary|[4.6 Regression] GCC no |GCC does not generate fmadd
   |longer generates fmadd for  |for pow (x, 0.75)+y on
   |pow (x, 0.75)+y on powerpc  |powerpc
   Severity|normal  |enhancement

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-02-08 
13:44:51 UTC ---
I had patches for powi expansion I think 6 years ago but they were rejected
(fortunately I can now approve them myself).  We should expose most of this
lowering to the vectorizer as it can vectorize sqrt and multiplication series
while it cannot vectorize pow or powi in general (it tries for some special
cases via the sucky pattern recognition).

Not a regression, no compiler was released with the fancy pow (x, 0.75) + y
handling.