[Bug tree-optimization/46728] GCC does not generate fmadd for pow (x, 0.75)+y on powerpc
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.