From c291b2adc6f25d897928c79f431d987eb74e4bc5 Mon Sep 17 00:00:00 2001 From: Oleg Endo Date: Thu, 1 Nov 2012 21:28:49 +0000 Subject: [PATCH] re PR target/55160 (Counterproductive loop induction variable optimization) PR target/55160 * gcc.target/sh/pr55160.c: New. From-SVN: r193071 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.target/sh/pr55160.c | 25 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 gcc/testsuite/gcc.target/sh/pr55160.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9b8914f56c6..9c59446a382 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-11-01 Oleg Endo + + PR target/55160 + * gcc.target/sh/pr55160.c: New. + 2012-11-01 David Edelsohn * gcc.target/powerpc/vsx-mass-1.c: Check for dot symbols in diff --git a/gcc/testsuite/gcc.target/sh/pr55160.c b/gcc/testsuite/gcc.target/sh/pr55160.c new file mode 100644 index 00000000000..ae0d83aa7cf --- /dev/null +++ b/gcc/testsuite/gcc.target/sh/pr55160.c @@ -0,0 +1,25 @@ +/* Check that the decrement-and-test instruction is generated. */ +/* { dg-do compile { target "sh*-*-*" } } */ +/* { dg-options "-O1" } */ +/* { dg-skip-if "" { "sh*-*-*" } { "-m5*"} { "" } } */ +/* { dg-final { scan-assembler-times "dt\tr" 2 } } */ + +int +test_00 (int* x, int c) +{ + int s = 0; + int i; + for (i = 0; i < c; ++i) + s += x[i]; + return s; +} + +int +test_01 (int* x, int c) +{ + int s = 0; + int i; + for (i = 0; i < c; ++i) + s += *--x; + return s; +} -- 2.30.2