1 /* { dg-options "-O2 -fgraphite-identity -fdump-tree-graphite-all" } */
2 
3 int a[100];
4 
5 int
foo(int bar,int n,int k)6 foo (int bar, int n, int k)
7 {
8   int i;
9 
10   for (i = 0; i < n; i++)
11     if (i == k)
12       a[i] = bar;
13 
14   for (i = 0; i < n; i++)
15     if (i == k)
16       a[i] = bar;
17 
18   return a[bar];
19 }
20 
21 /* There should be no loops generated for this testcase, instead we
22    should generate the following:
23 
24    | if (k >= 0 && k < n)
25    |   a[k] = bar;
26 
27    Check that this text is produced:
28 
29 AST generated by isl:
30 if (n >= k + 1 && k >= 0) {
31   S_6(k);
32   S_11(k);
33 }
34 
35 */
36 
37 /* { dg-final { scan-tree-dump "if \\\(P_\[0-9\]+ >= P_\[0-9\]+ \\\+ 1 && P_\[0-9\]+ >= 0\\\) \\\{" "graphite" } } */
38