This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/29777] missed optimization: model missing widen_mult* idioms for SSE



------- Comment #2 from dorit at il dot ibm dot com  2006-11-09 20:26 -------
> But these files can be succesfully vectorized using current (gcc version 4.3.0
> 20061109) version on i686:
> gcc -O2 -msse2 -ftree-vectorize -fdump-tree-vect-all vect-widen-mult-sum.c
> vect-widen-mult-sum.c:16: note: LOOP VECTORIZED.
> vect-widen-mult-sum.c:12: note: vectorized 1 loops in function.

Probably because the i386 port models the "vect_unpack" and "vect_int_mult"
idioms (see
target-supports.exp:check_effective_target_vect_widen_mult_hi_to_si()): i.e.,
instead of recognizing it's a widening multiplication and vectorizing it as
such, it's vectorized by first unpacking (widening) the shorts to ints, and
then doing int multiplication, which is probably less efficient. Sorry for the
unclarity

> > The missing insns (that should be merged from autovect-branch and debugged):
> > vec_widen_umult_hi_v8hi
> > vec_widen_umult_lo_v8hi
> These patterns _are_ present in gcc version 4.3.0 20061109 (experimental) in
> sse.md.

I'm sorry - I meant vec_widen_smult_hi_v8hi and vec_widen_smult_lo_v8hi.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29777


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]