On 12/07/2012 04:02 PM, Marc Glisse wrote: > 2012-12-08 Marc Glisse <marc.gli...@inria.fr> > > PR target/54855 > gcc/ > * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3): Rewrite > pattern. > (sse2_loadlpd, sse2_loadhpd): Use vec_merge. > * 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. > (ix86_expand_vector_set): Use vec_merge for V2DF. > * 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.
This looks like the right approach. I won't approve this for 4.8 because (1) this isn't a regression, and (2) all of the other operations want to be handled similarly. But I'll approve this for 4.9 as part 1 of a series. (That need not be developed and committed all at once, but will be all done before the end of the next stage1.) r~