re PR target/43597 (Move and compare with 0 can be combined)
authorTom de Vries <tom@codesourcery.com>
Wed, 17 Aug 2011 11:39:06 +0000 (11:39 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Wed, 17 Aug 2011 11:39:06 +0000 (11:39 +0000)
2011-08-17  Tom de Vries  <tom@codesourcery.com>

PR target/43597
* gcc.target/arm/pr43597.c: New test.

From-SVN: r177827

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

index 1d070a8..955764b 100644 (file)
@@ -1,3 +1,8 @@
+2011-08-17  Tom de Vries  <tom@codesourcery.com>
+
+       PR target/43597
+       * gcc.target/arm/pr43597.c: New test.
+
 2011-08-17  Janus Weil  <janus@gcc.gnu.org>
 
        PR fortran/50070
diff --git a/gcc/testsuite/gcc.target/arm/pr43597.c b/gcc/testsuite/gcc.target/arm/pr43597.c
new file mode 100644 (file)
index 0000000..af382ba
--- /dev/null
@@ -0,0 +1,28 @@
+/* { dg-do assemble } */
+/* { dg-options "-Os -save-temps -mthumb" } */
+/* { dg-require-effective-target arm_thumb2_ok } */
+
+extern int bar ();
+extern void bar2 (int);
+
+int
+foo4 ()
+{
+  int result = 0;
+  int f = -1;
+  f = bar ();
+  if (f < 0)
+    {
+      result = 1;
+      goto bail;
+    }
+  bar ();
+ bail:
+  bar2 (f);
+  return result;
+}
+
+/* { dg-final { scan-assembler-times "sub" 1 } } */
+/* { dg-final { scan-assembler-times "cmp" 0 } } */
+/* { dg-final { object-size text <= 30 } } */
+/* { dg-final { cleanup-saved-temps "pr43597" } } */