OSDN Git Service

Add new testcases.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / graphite / pr35356-3.c
1 /* { dg-options "-O2 -fgraphite-identity -fdump-tree-graphite-all" } */
2
3
4 int winner, numf2s;
5 double **tds;
6 double d, tsum;
7
8 typedef struct {
9   double y;
10 } xyz;
11
12 xyz *Y;
13 int ti;
14
15 double
16 match (void)
17 {
18   int tj, tresult;
19
20   for (tj = 0; tj < numf2s; tj++)
21     if (tj == winner
22         && Y[tj].y > 0)
23       tsum += tds[ti][tj] * d;
24
25   return tsum;
26 }
27
28 /* There should be no loops generated for this testcase, instead we
29    should generate the following:
30
31    | if (winner >= 0 && winner < numf2s && Y[winner].y > 0)
32    |   tsum += tds[ti][winner] * d;
33
34    For the moment this is XFAILed as this loop is not detected as a
35    SCoP by graphite: we depend on data in one of the conditions,
36    "Y[winner].y > 0".  This could be fixed when we will use predicates
37    for such cases.  */
38
39 /* { dg-final { scan-tree-dump-times "loop_1" 0 "graphite" { xfail *-*-* } } } */
40 /* { dg-final { cleanup-tree-dump "graphite" } } */