1 /* { dg-do compile } */ 2 /* { dg-options "-O1 -fdump-tree-lim2-details --param allow-store-data-races=1" } */ 3 4 float a[100]; 5 6 int foo(void); 7 float sinf (float); 8 xxx(void)9void xxx (void) 10 { 11 int i, k = foo (); 12 13 for (i = 0; i < 100; i++) 14 a[k] += sinf (i); 15 } 16 17 /* Store motion may be applied to the assignment to a[k], since sinf 18 cannot read nor write the memory. */ 19 20 /* { dg-final { scan-tree-dump-times "Moving statement" 1 "lim2" } } */ 21