+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.
/* { 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" } } */
/* { 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" } } */
/* { 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" } } */