1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-lim2-details" } */
3
4 int x;
5 int a[100];
6
7 struct a
8 {
9 int X;
10 int Y;
11 };
12
13 struct a arr[100];
14
test4(unsigned b)15 void test4(unsigned b)
16 {
17 unsigned i;
18
19 /* And here. */
20 for (i = 0; i < 100; i++)
21 {
22 arr[b+8].X += i;
23 arr[b+9].X += i;
24 }
25 }
26
test5(struct a * A,unsigned b)27 void test5(struct a *A, unsigned b)
28 {
29 unsigned i;
30
31 /* And here as well. */
32 for (i = 0; i < 100; i++)
33 {
34 A[b].X += i;
35 A[b+1].Y += i;
36 }
37 }
38
39 /* { dg-final { scan-tree-dump-times "Executing store motion of" 4 "lim2" { xfail { lp64 || llp64 } } } } */
40