[Bug target/54564] [4.8 Regression] Broken __builtin_ia32_vfmadds[sd]3

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Sep 13 12:07:00 GMT 2012


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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
         AssignedTo|unassigned at gcc dot       |jakub at gcc dot gnu.org
                   |gnu.org                     |

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-09-13 12:07:28 UTC ---
Created attachment 28187
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28187
gcc48-pr54564.patch

Very lightly tested fix (just
make check-gcc RUNTESTFLAGS='--target_board=valgrind-sim/-m64 i386.exp=\*fma\*'
with valgrind that supports fma).

It is unfortunate that we don't generate the vf{,n}madd231s{s,d} insns any
longer, but I don't see how that would be possible, because the intrinsic (as
the testcases for it show) really wants to put the high elements of the first
argument into the destination, merged with the fma result.  The insns are
barely useful for anything else than the intrinsic, normal code would either
use the scalar insn that ignores the higher elements, or full vector version,
so IMHO this isn't a big deal.



More information about the Gcc-bugs mailing list