diff options
-rw-r--r-- | gcc/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/scev-3.c | 43 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/scev-4.c | 47 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/scev-5.c | 43 |
4 files changed, 113 insertions, 29 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c00a050..add78e2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2017-01-17 Richard Biener <rguenther@suse.de> + + PR testsuite/52563 + PR testsuite/71237 + PR testsuite/77737 + * gcc.dg/tree-ssa/scev-3.c: Re-write to a GIMPLE testcase for IVOPTs. + * gcc.dg/tree-ssa/scev-4.c: Likewise. + * gcc.dg/tree-ssa/scev-5.c: Likewise. + 2017-01-17 Alan Modra <amodra@gmail.com> * gcc.target/powerpc/pr79066.c: New. diff --git a/gcc/testsuite/gcc.dg/tree-ssa/scev-3.c b/gcc/testsuite/gcc.dg/tree-ssa/scev-3.c index 1346f26..fed1011 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/scev-3.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/scev-3.c @@ -1,18 +1,43 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-optimized" } */ +/* { dg-options "-O2 -fgimple -fdump-tree-ivopts" } */ int *a_p; int a[1000]; -void -f(int k) +void __GIMPLE (startwith ("loop")) +f (int k) { - int i; + int i; + int * _1; + +bb_2: + i_5 = k_4(D); + if (i_5 <= 999) + goto bb_4; + else + goto bb_3; + +bb_3: + return; + +bb_4: + ; + +bb_5: + i_12 = __PHI (bb_6: i_9, bb_4: i_5); + _1 = &a[i_12]; + a_p = _1; + __MEM <int[1000]> ((int *)&a)[i_12] = 100; + i_9 = i_5 + i_12; + if (i_9 <= 999) + goto bb_6; + else + goto bb_3; + +bb_6: + ; + goto bb_5; - for (i=k; i<1000; i+=k) { - a_p = &a[i]; - *a_p = 100; - } } -/* { dg-final { scan-tree-dump-times "&a" 1 "optimized" } } */ +/* { dg-final { scan-tree-dump-times "&a" 1 "ivopts" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/scev-4.c b/gcc/testsuite/gcc.dg/tree-ssa/scev-4.c index 99d0337..94ebfae 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/scev-4.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/scev-4.c @@ -1,23 +1,48 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-optimized" } */ +/* { dg-options "-O2 -fgimple -fdump-tree-ivopts" } */ typedef struct { - int x; - int y; + int x; + int y; } S; int *a_p; S a[1000]; -void -f(int k) +void __GIMPLE (startwith ("loop")) +f (int k) { - int i; + int i; + int * _1; + +bb_2: + i_5 = k_4(D); + if (i_5 <= 999) + goto bb_4; + else + goto bb_3; + +bb_3: + return; + +bb_4: + ; + +bb_5: + i_12 = __PHI (bb_6: i_9, bb_4: i_5); + _1 = &a[i_12].y; + a_p = _1; + __MEM <S[1000]> ((int *)&a)[i_12].y = 100; + i_9 = i_5 + i_12; + if (i_9 <= 999) + goto bb_6; + else + goto bb_3; + +bb_6: + ; + goto bb_5; - for (i=k; i<1000; i+=k) { - a_p = &a[i].y; - *a_p = 100; - } } -/* { dg-final { scan-tree-dump-times "&a" 1 "optimized" } } */ +/* { dg-final { scan-tree-dump-times "&a" 1 "ivopts" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/scev-5.c b/gcc/testsuite/gcc.dg/tree-ssa/scev-5.c index 3f4a9cd..8cced51 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/scev-5.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/scev-5.c @@ -1,18 +1,43 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-optimized" } */ +/* { dg-options "-O2 -fgimple -fdump-tree-ivopts" } */ int *a_p; int a[1000]; -void -f(int k) +void __GIMPLE (startwith ("loop")) +f (int k) { - long long i; + long long int i; + int * _1; + +bb_2: + i_5 = (long long int) k_4(D); + if (i_5 <= 999ll) + goto bb_4; + else + goto bb_3; + +bb_3: + return; + +bb_4: + ; + +bb_5: + i_12 = __PHI (bb_6: i_9, bb_4: i_5); + _1 = &a[i_12]; + a_p = _1; + __MEM <int[1000]> ((int *)&a)[i_12] = 100; + i_9 = i_5 + i_12; + if (i_9 <= 999ll) + goto bb_6; + else + goto bb_3; + +bb_6: + ; + goto bb_5; - for (i=k; i<1000; i+=k) { - a_p = &a[i]; - *a_p = 100; - } } -/* { dg-final { scan-tree-dump-times "&a" 1 "optimized" } } */ +/* { dg-final { scan-tree-dump-times "&a" 1 "ivopts" } } */ |