http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51684
Ira Rosen <irar at il dot ibm.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2011-12-27 CC| |irar at il dot ibm.com AssignedTo|unassigned at gcc dot |irar at il dot ibm.com |gnu.org | Ever Confirmed|0 |1 --- Comment #1 from Ira Rosen <irar at il dot ibm.com> 2011-12-27 13:53:13 UTC --- Untested patch: Index: tree-vect-slp.c =================================================================== --- tree-vect-slp.c (revision 182692) +++ tree-vect-slp.c (working copy) @@ -2885,6 +2885,8 @@ vect_schedule_slp_instance (slp_tree nod && REFERENCE_CLASS_P (gimple_get_lhs (stmt))) { gimple last_store = vect_find_last_store_in_slp_instance (instance); + if (is_pattern_stmt_p (vinfo_for_stmt (last_store))) + last_store = STMT_VINFO_RELATED_STMT (vinfo_for_stmt (last_store)); si = gsi_for_stmt (last_store); } @@ -2989,6 +2991,8 @@ vect_schedule_slp (loop_vec_info loop_vi if (!STMT_VINFO_DATA_REF (vinfo_for_stmt (store))) break; + if (is_pattern_stmt_p (vinfo_for_stmt (store))) + store = STMT_VINFO_RELATED_STMT (vinfo_for_stmt (store)); /* Free the attached stmt_vec_info and remove the stmt. */ gsi = gsi_for_stmt (store); gsi_remove (&gsi, true);