http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54564
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-09-14 12:36:41 UTC --- Author: jakub Date: Fri Sep 14 12:36:33 2012 New Revision: 191297 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=191297 Log: PR target/54564 * config/i386/sse.md (fmai_vmfmadd_<mode>): Use (match_dup 1) instead of (match_dup 0) as second argument to vec_merge. (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>): Likewise. Remove third alternative. (*fmai_fnmadd_<mode>, *fmai_fnmsub_<mode>): Likewise. Negate operand 2 instead of operand 1, but put it as first argument of fma. * config/i386/fmaintrin.h (_mm_fnmadd_sd, _mm_fnmadd_ss, _mm_fnmsub_sd, _mm_fnmsub_ss): Negate the second argument instead of the first. Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog --- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-09-14 12:37:32 UTC --- Author: jakub Date: Fri Sep 14 12:37:16 2012 New Revision: 191298 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=191298 Log: PR target/54564 * config/i386/sse.md (fmai_vmfmadd_<mode>): Use (match_dup 1) instead of (match_dup 0) as second argument to vec_merge. (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>): Likewise. Remove third alternative. (*fmai_fnmadd_<mode>, *fmai_fnmsub_<mode>): Likewise. Negate operand 2 instead of operand 1, but put it as first argument of fma. * config/i386/fmaintrin.h (_mm_fnmadd_sd, _mm_fnmadd_ss, _mm_fnmsub_sd, _mm_fnmsub_ss): Negate the second argument instead of the first. Modified: trunk/gcc/config/i386/fmaintrin.h trunk/gcc/config/i386/sse.md