On Fri, 7 Dec 2012, Richard Henderson wrote:
On 2012-12-07 09:12, Marc Glisse wrote:
but change ix86_expand_vector_set and others to generate vec_merge
and have only the vec_merge define_insn in sse.md? I guess it would
buy a large part of it. That's a pretty invasive change, I'll have to
try...
Is it really that invasive?
No, changing only V2DF, I seem to have the basic pieces in place changing
just 6 patterns in sse.md and a couple functions in i386.c. Now I need to
test it and see how much it affects the generated code...
Anyway, it's something worth trying for 4.9...
Should I take it that if it ends up looking manageable, you prefer
changing all the V2DF operations to vec_merge, rather than just adapting
the addsd pattern? Won't it complicate things for generic optimizations if
different platforms have different canonical patterns for the same
operation on V2DF? It seems to me that it would be good if we agreed on a
pattern common to all platforms so we could canonicalize as in the last
part of:
http://gcc.gnu.org/ml/gcc-patches/2012-12/msg00243.html
(or possibly the reverse transformation depending on the pattern we settle
on).
(those 2 patches didn't touch the generic simplify-rtx code either, if I
remember just the "don't touch combine" part of your suggestion ;-)
http://gcc.gnu.org/ml/gcc-patches/2012-12/msg00028.html
http://gcc.gnu.org/ml/gcc-patches/2012-12/msg00492.html )
--
Marc Glisse
PS: I'll ping you about this other patch when trunk re-opens for 4.9, if
you don't mind:
http://gcc.gnu.org/ml/gcc-patches/2012-12/msg00079.html