1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-lim2-details" } */
3 int x; int y;
4 struct { int x; int y; } global;
foo()5 int foo() {
6 	int i;
7 	for ( i=0; i<10; i++)
8 		y += x*x;
9 	for ( i=0; i<10; i++)
10 		global.y += global.x*global.x;
11 }
12 
13 /* { dg-final { scan-tree-dump-times "Executing store motion of global.y" 1 "lim2" } } */
14 /* XXX: We should also check for the load motion of global.x, but there is no easy way to do this.  */
15