| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-lim2-details -fdump-tree-optimized" } */ |
| |
| extern volatile int *x; |
| static int gCrc; |
| |
| static int __attribute__((noinline)) crc16Add(int crc, int b) |
| { |
| return crc + b; |
| } |
| |
| void f(int data, int dataSz) |
| { |
| int i; |
| |
| for(i=0;i<dataSz;i++) |
| { |
| gCrc = crc16Add(gCrc, data); |
| *x = data; |
| } |
| } |
| |
| /* { dg-final { scan-tree-dump "Executing store motion of gCrc" "lim2" } } */ |
| /* { dg-final { scan-tree-dump-not "Re-issueing" "lim2" } } */ |
| /* { dg-final { scan-tree-dump-times "\\*x" 1 "optimized" } } */ |