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()5int 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