| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-ivopts" } */ |
| |
| void vnum_test8(int *data) |
| { |
| int i; |
| int stop = data[3]; |
| int m = data[4]; |
| int n = m; |
| for (i=1; i<stop; i++) { |
| int k = data[2]; |
| data[k] = 2; |
| data[0] = m - n; |
| k = data[1]; |
| m = m + k; |
| n = n + k; |
| } |
| } |
| |
| /* Using the SCEV analysis, this loop should be transformed to: |
| |
| | void vnum_result8(int *data) |
| |{ |
| | int i; |
| | int stop = data[3]; |
| | for (i=1; i<stop; i++) { |
| | int k = data[2]; |
| | data[k] = 2; |
| | data[0] = 0; |
| | } |
| |} |
| |
| */ |
| |
| /* { dg-final { scan-tree-dump-times "= 0;" 1 "ivopts"} } */ |
| /* { dg-final { scan-tree-dump-times "= 2;" 1 "ivopts"} } */ |