The end result is a bunch more macro-ized patterns in the md file,
and some missing patterns filled in.  The widen_mult_even/odd hooks
elide the need for specific sdot_prod patterns while allowing the
same improved code sequence for other reductions.

I expect to be able to use the widen_mult_even/odd hooks elsewhere
as well, but that patch sequence is not yet complete.

Tested on x86-64-linux, {-msse2,-msse4}.  Spot checked for -mavx2 and -mxop.
Committed.


r~


Richard Henderson (4):
  i386: Cleanup and unify widening multiply patterns
  i386: Use vpmacsdd for mulv4si3
  i386: Add widen_multiply_even/odd builtins and hooks
  i386: Delete sse sdot_prod; add sdot_prodv4si for xop

 gcc/ChangeLog                          |   54 ++++++
 gcc/config/i386/i386-builtin-types.def |    5 +-
 gcc/config/i386/i386-protos.h          |    4 +-
 gcc/config/i386/i386.c                 |  308 +++++++++++++++++++++++++++-----
 gcc/config/i386/i386.md                |    1 +
 gcc/config/i386/predicates.md          |    7 -
 gcc/config/i386/sse.md                 |  282 +++++------------------------
 7 files changed, 368 insertions(+), 293 deletions(-)

-- 
1.7.10.2

Reply via email to