From 69b806f6a60efcf150b995e418f08b96d26dd5dc Mon Sep 17 00:00:00 2001 From: Bin Cheng Date: Tue, 2 Aug 2016 10:13:28 +0000 Subject: re PR tree-optimization/34114 (Missed optimization: cannot determine loop termination) PR tree-optimization/34114 * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow information for more control IVs. gcc/testsuite PR tree-optimization/34114 * gcc.dg/tree-ssa/loop-42.c: New test. From-SVN: r238983 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/tree-ssa/loop-42.c | 36 +++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/loop-42.c (limited to 'gcc/testsuite') diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f5bd074..c1a98ec 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-08-02 Bin Cheng + + PR tree-optimization/34114 + * gcc.dg/tree-ssa/loop-42.c: New test. + 2016-08-02 Tamar Christina * gcc.target/aarch64/vminmaxnm.c: New. diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-42.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-42.c new file mode 100644 index 0000000..3f9d91a --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-42.c @@ -0,0 +1,36 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-ivcanon-details" } */ + +void foo2 (unsigned int num, int *a) +{ + unsigned int i, n = (num - (num % 2)); + + for(i = 0; i != n; i += 2) + a[i] = 0; +} + +void foo3 (unsigned int num, int *a) +{ + unsigned int i, n = (num - (num % 3)); + + for(i = 0; i != n; i += 3) + a[i] = 0; +} + +void foo4 (unsigned int num, int *a) +{ + unsigned int i, n = (num - (num % 4)); + + for(i = 0; i != n; i += 4) + a[i] = 0; +} + +void foo5 (unsigned int num, int *a) +{ + unsigned int i, n = (num - (num % 5)); + + for(i = 0; i != n; i += 5) + a[i] = 0; +} + +/* { dg-final { scan-tree-dump-not "under assumptions " "ivcanon" } } */ -- cgit v1.1