http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46728
--- Comment #2 from Michael Meissner <meissner at gcc dot gnu.org> 2011-02-04 18:11:09 UTC --- When the initial changes for bug 42694 was added that optimizes pow (x, 0.75) into sqrt(sqrt(x))*sqrt(x) under fast math, there was a desire to move this RTL optimization into the tree level. Ideally it should before the vectorization of math functions and FMA (floating point multiplication and add) passes. Here is the discussion about the changes in April 2010: http://gcc.gnu.org/ml/gcc-patches/2010-04/msg00788.html Presumably most of the optimizations done in expand_builtin_pow, expand_builtin_powi and expand_builtin_pow_root in the builtins.c file should be moved to a tree pass.