re PR tree-optimization/55831 (ICE: verify_flow_info failed)
authorJakub Jelinek <jakub@redhat.com>
Mon, 31 Dec 2012 23:50:00 +0000 (00:50 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 31 Dec 2012 23:50:00 +0000 (00:50 +0100)
PR tree-optimization/55831
* tree-vect-loop.c (get_initial_def_for_induction): Use
gsi_after_labels instead of gsi_start_bb.

* gcc.dg/pr55831.c: New test.

From-SVN: r194764

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr55831.c [new file with mode: 0644]
gcc/tree-vect-loop.c

index ae21e02ff38a235a8a0247ee3659a3198113435b..6e565b0de4ac425ec46cbd2332fea5dca5d6360c 100644 (file)
@@ -1,3 +1,9 @@
+2013-01-01  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/55831
+       * tree-vect-loop.c (get_initial_def_for_induction): Use
+       gsi_after_labels instead of gsi_start_bb.
+
 2012-12-27  David Edelsohn  <dje.gcc@gmail.com>
 
        * config/rs6000/rs6000.c (rs6000_deligitimze_address): Do not
index 6687189a22f2b91cd8aefbf110c6f3291d8564c8..a7b78406ed07b649d7eb2daba5569f3025c6dbfc 100644 (file)
@@ -1,3 +1,8 @@
+2013-01-01  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/55831
+       * gcc.dg/pr55831.c: New test.
+
 2012-12-31  Uros Bizjak  <ubizjak@gmail.com>
 
        * g++.dg/ipa/devirt-9.C: Cleanup inline ipa dump.
diff --git a/gcc/testsuite/gcc.dg/pr55831.c b/gcc/testsuite/gcc.dg/pr55831.c
new file mode 100644 (file)
index 0000000..ce7be63
--- /dev/null
@@ -0,0 +1,39 @@
+/* PR tree-optimization/55831 */
+/* { dg-do compile } */
+/* { dg-options "-O -fstrict-overflow -ftree-vectorize -Wno-unused-label" } */
+
+int g;
+short p, q;
+
+void
+foo (void)
+{
+  short a = p, b = q, i;
+
+  if (a)
+    {
+    label:
+      for (i = 0; i < 8; i++)
+       b ^= a++;
+
+      if (!b)
+       g = 0;
+    }
+}
+
+void
+bar (void)
+{
+  short a = p, b = q, i;
+
+  if (a)
+    {
+    label:
+      for (i = 0; i < 8; i++)
+       b ^= (a = a + 1);
+
+      if (!b)
+       g = 0;
+    }
+}
+
index 633d3d1d97299d553e45ca8c6a3ce627a939a0fd..f091604e492544f6f6e47110f4704791408b865f 100644 (file)
@@ -1,6 +1,6 @@
 /* Loop Vectorization
-   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-   Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
+   2013 Free Software Foundation, Inc.
    Contributed by Dorit Naishlos <dorit@il.ibm.com> and
    Ira Rosen <irar@il.ibm.com>
 
@@ -3406,7 +3406,7 @@ get_initial_def_for_induction (gimple iv_phi)
          build1 (VIEW_CONVERT_EXPR, resvectype, induc_def), NULL_TREE);
       induc_def = make_ssa_name (gimple_assign_lhs (new_stmt), new_stmt);
       gimple_assign_set_lhs (new_stmt, induc_def);
-      si = gsi_start_bb (bb);
+      si = gsi_after_labels (bb);
       gsi_insert_before (&si, new_stmt, GSI_SAME_STMT);
       set_vinfo_for_stmt (new_stmt,
                          new_stmt_vec_info (new_stmt, loop_vinfo, NULL));