The patch that adds support for vectorization of multiple data-types (http://gcc.gnu.org/ml/gcc-patches/2006-08/msg00166.html) was missing a few bits from the i386 port that rth contributed to autovect-branch a while back. This is because a couple testcases were failing with these features:
The testcases that failed (on assembler error) are two of tests that require "vect_widen_mult_hi_to_si": testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c testsuite/gcc.dg/vect/vect-widen-mult-s16.c testsuite/gcc.dg/vect/vect-widen-mult-sum.c The missing insns (that should be merged from autovect-branch and debugged): vec_widen_umult_hi_v8hi vec_widen_umult_lo_v8hi When these are back in, we'll want to add i?86-*-* and x86_64-*-* to the list of targets that return true in the function "vect_widen_mult_hi_to_si" in testsuite/lib/target-support.exp. -- Summary: missed optimization: model missing widen_mult* idioms for SSE Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dorit at il dot ibm dot com GCC build triplet: i?86-*-* and x86_64-*-* GCC host triplet: i?86-*-* and x86_64-*-* GCC target triplet: i?86-*-* and x86_64-*-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29777