>> 2012-12-04 Marc Glisse >> >> PR target/54855 >> gcc/ >> * simplify-rtx.c (simplify_binary_operation_1) : Replace >> with VEC_MERGE. >> >> * config/i386/sse.md (_vm3): Rewrite >> pattern. >> * config/i386/i386-builtin-types.def: New function types. >> * config/i386/i386.c (ix86_expand_args_builtin): Likewise. >> (bdesc_args) <__builtin_ia32_addss, __builtin_ia32_subss, >> __builtin_ia32_addsd, __builtin_ia32_subsd>: Change prototype. >> * config/i386/xmmintrin.h: Adapt to new builtin prototype. >> * config/i386/emmintrin.h: Likewise. >> * doc/extend.texi (X86 Built-in Functions): Document changed >> prototype. >> >> >> testsuite/ >> * gcc.target/i386/pr54855-1.c: New testcase. >> * gcc.target/i386/pr54855-2.c: New testcase. Hello Eric, could you take a look at the small simplify-rtx bit of this patch to see if the general approach makes sense to you? (this targets 4.9 and passes bootstrap+testsuite on x86_64-linux) The point of this transformation is to avoid writing a second define_insn in config/i386/sse.md as in the older patch: http://gcc.gnu.org/ml/gcc-patches/2012-12/msg00028.html (similar patches for multiplication, division, etc will follow, and this will avoid an extra entry in sse.md for each of these operations) Thanks, -- Marc Glisse