PR tree-optimization/51684
authorirar <irar@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Dec 2011 09:20:16 +0000 (09:20 +0000)
committerirar <irar@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Dec 2011 09:20:16 +0000 (09:20 +0000)
        * tree-vect-slp.c (vect_schedule_slp_instance): Get gsi of
        original statement in case of a pattern.
        (vect_schedule_slp): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182705 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-vect-slp.c

index a23b9aa..280ca15 100644 (file)
@@ -1,3 +1,10 @@
+2011-12-28  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/51684
+       * tree-vect-slp.c (vect_schedule_slp_instance): Get gsi of original
+       statement in case of a pattern.
+       (vect_schedule_slp): Likewise.
+
 2011-12-27  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR rtl-optimization/51667
index 23330b2..91ed0c7 100644 (file)
@@ -2885,6 +2885,8 @@ vect_schedule_slp_instance (slp_tree node, slp_instance instance,
       && 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_vinfo, bb_vec_info bb_vinfo)
           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);