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

           Summary: GCC no longer generates fmadd for pow (x, 0.75)+y on
                    powerpc
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: meiss...@gcc.gnu.org
              Host: powerpc64-linux
            Target: powerpc64-linux
             Build: powerpc64-linux


Created attachment 22582
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22582
Test file that when compiled with -ffast-math -mcpu=power6 shows the bug

With Richard Henderson's change on 2010-11-16 to move the FMA generation to the
gimple level, and remove all of the combiners in the backend for fma, the
compiler now does not generate a fma for the __builtin_pow (x, 0.75)
optimization if the result of the pow is added to another value.  Now, the
actual benchmark that prompted adding the __builtin_pow (x, 0.75) optimization
does not combine the pow with an add, other people might run into it.

This is due to the fact that the pow transformation is done at the rtl level,
and not the tree level, and with the combiners removed, the compiler does not
do the transformation.  The right solution is to move this optimization to the
tree level.

Reply via email to