re PR tree-optimization/22442 (scev cprop causes wrong code)
authorZdenek Dvorak <dvorakz@suse.cz>
Wed, 13 Jul 2005 10:37:25 +0000 (12:37 +0200)
committerZdenek Dvorak <rakdver@gcc.gnu.org>
Wed, 13 Jul 2005 10:37:25 +0000 (10:37 +0000)
PR tree-optimizatio/22442
* gcc.dg/tree-ssa/loop-11.c: New test.

From-SVN: r101963

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

index 15b1c4dbd4d3b5f767e94dd0c4abdfb325d358a8..a2c26cee14e8194ef7677ca75c5ab2d1469f9a91 100644 (file)
@@ -1,3 +1,8 @@
+2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR tree-optimizatio/22442
+       * gcc.dg/tree-ssa/loop-11.c: New test.
+
 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
 
        PR tree-opt/21840
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-11.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-11.c
new file mode 100644 (file)
index 0000000..58a1349
--- /dev/null
@@ -0,0 +1,28 @@
+/* A test for final value replacement and higher-order ivs,
+   see PR 22442.  */
+
+/* { dg-do compile } */
+/* { dg-options "-O1 -fdump-tree-vars" } */
+
+void bar (unsigned);
+
+void foo (void)
+{
+  unsigned i, a;
+
+  for (i = 0; i < 5; i++)
+    a = i * i;
+
+  bar (a);
+}
+
+/* Final value of a gets replaced.  */
+
+/* { dg-final { scan-tree-dump-times "\\(16\\)" 1 "vars" } } */
+
+/* And the empty loop is removed.  */
+
+/* { dg-final { scan-tree-dump-times "if " 0 "vars" } } */
+
+/* { dg-final { cleanup-tree-dump "vars" } } */
+