re PR middle-end/45098 (Missed induction variable optimization)
authorTom de Vries <tom@codesourcery.com>
Thu, 19 May 2011 09:33:49 +0000 (09:33 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Thu, 19 May 2011 09:33:49 +0000 (09:33 +0000)
2011-05-19  Tom de Vries  <tom@codesourcery.com>

PR target/45098
* gcc.target/arm/ivopts.c: New test.
* gcc.target/arm/ivopts-2.c: New test.

From-SVN: r173896

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/ivopts-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/ivopts.c [new file with mode: 0644]

index a9af18eeae366d6d1b490720f3567c05870b9fef..f9defe50594197f1bc7a70a36efbc6bec407ffbe 100644 (file)
@@ -1,3 +1,9 @@
+2011-05-19  Tom de Vries  <tom@codesourcery.com>
+
+       PR target/45098
+       * gcc.target/arm/ivopts.c: New test.
+       * gcc.target/arm/ivopts-2.c: New test.
+
 2011-05-19  Tom de Vries  <tom@codesourcery.com>
 
        * lib/lib/scanasm.exp (object-size): Fix target selector handling.
diff --git a/gcc/testsuite/gcc.target/arm/ivopts-2.c b/gcc/testsuite/gcc.target/arm/ivopts-2.c
new file mode 100644 (file)
index 0000000..4aba3cf
--- /dev/null
@@ -0,0 +1,18 @@
+/* { dg-do assemble } */
+/* { dg-options "-Os -mthumb -fdump-tree-ivopts -save-temps" } */
+
+extern void foo2 (short*);
+
+void
+tr4 (short array[], int n)
+{
+  int x;
+  if (n > 0)
+    for (x = 0; x < n; x++)
+      foo2 (&array[x]);
+}
+
+/* { dg-final { scan-tree-dump-times "PHI <ivtmp" 1 "ivopts"} } */
+/* { dg-final { scan-tree-dump-times "PHI <" 1 "ivopts"} } */
+/* { dg-final { object-size text <= 26 { target arm_thumb2_ok } } } */
+/* { dg-final { cleanup-tree-dump "ivopts" } } */
diff --git a/gcc/testsuite/gcc.target/arm/ivopts.c b/gcc/testsuite/gcc.target/arm/ivopts.c
new file mode 100644 (file)
index 0000000..2d67e0a
--- /dev/null
@@ -0,0 +1,15 @@
+/* { dg-do assemble } */
+/* { dg-options "-Os -mthumb -fdump-tree-ivopts -save-temps" } */
+
+void
+tr5 (short array[], int n)
+{
+  int x;
+  if (n > 0)
+    for (x = 0; x < n; x++)
+      array[x] = 0;
+}
+
+/* { dg-final { scan-tree-dump-times "PHI <" 1 "ivopts"} } */
+/* { dg-final { object-size text <= 20 { target arm_thumb2_ok } } } */
+/* { dg-final { cleanup-tree-dump "ivopts" } } */