aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/tree-ssa/ivcanon-1.c
diff options
context:
space:
mode:
authorno-author <no-author@gcc.gnu.org>2004-05-26 01:58:41 +0000
committerno-author <no-author@gcc.gnu.org>2004-05-26 01:58:41 +0000
commit2beaa1447322d20bef6ff64119842a0a7002c995 (patch)
tree09b43fc9270e195339f1b3f1f64cc5214f0b4de6 /gcc/testsuite/gcc.dg/tree-ssa/ivcanon-1.c
parent03846eafd7c275b583a97c40554da04c978a110a (diff)
This commit was manufactured by cvs2svn to create tagapple/gcc-1757
'apple-gcc-1757'. git-svn-id: https://gcc.gnu.org/svn/gcc/tags/apple-gcc-1757@82276 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.dg/tree-ssa/ivcanon-1.c')
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ivcanon-1.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ivcanon-1.c b/gcc/testsuite/gcc.dg/tree-ssa/ivcanon-1.c
new file mode 100644
index 00000000000..430a9514ca5
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ivcanon-1.c
@@ -0,0 +1,37 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -ftree-loop-optimize -fscalar-evolutions -funroll-loops -fdump-tree-optimized" } */
+
+void foo(void)
+{
+ int n = 16875;
+
+ while (n)
+ {
+ if (n&1)
+ bar (n);
+ n >>= 1;
+ }
+}
+
+static inline int power (long x, unsigned int n)
+{
+ long y = n % 2 ? x : 1;
+
+ while (n >>= 1)
+ {
+ x = x * x;
+ if (n % 2)
+ y = y * x;
+ }
+
+ return y;
+}
+
+void test(long x)
+{
+ bar (power (x, 10));
+ bar (power (x, 27));
+}
+
+/* All loops should be completely unrolled, so there should be no labels. */
+/* { dg-final { scan-tree-dump-times "<L" 0 "optimized"} } */