]> git.ipfire.org Git - thirdparty/gcc.git/blame - libgomp/testsuite/libgomp.graphite/force-parallel-4.c
Backwards jump threader rewrite with ranger.
[thirdparty/gcc.git] / libgomp / testsuite / libgomp.graphite / force-parallel-4.c
CommitLineData
99e0e30f 1/* Autopar with IF conditions. */
2e96b5f1 2/* { dg-additional-options "-fdisable-tree-thread1" } */
99e0e30f
SP
3
4void abort();
5
6#define N 10000
7#define T 1000
8
9void foo(void)
10{
11 int i;
12 int A[2*N], B[2*N];
13
14 /* Initialize array: carried no dependency. */
15 for (i = 0; i < 2*N; i++)
16 B[i] = A[i] = i;
17
18 for (i = 0; i < N; i++)
19 {
20 if (i < T)
21 /* loop i1: carried no dependency. */
22 A[i] = A[i+T];
23 else
24 /* loop i2: carried dependency. */
25 A[i] = A[i+T+1];
26 }
27
28 /* If it runs a wrong answer, abort. */
29 for (i = 0; i < N; i++)
30 {
31 if (i < T)
32 {
33 if (A[i] != B[i+T])
34 abort();
35 }
36 else
37 {
38 if (A[i] != B[i+T+1])
39 abort();
40 }
41 }
42}
43
44int main(void)
45{
46 foo();
47 return 0;
48}
49
79cf14ae
RB
50/* Check that parallel code generation part make the right answer.
51 ??? XFAILed for i1 because conditional store elimination wrecks
52 our dependence representation. */
53/* { dg-final { scan-tree-dump-times "2 loops carried no dependency" 1 "graphite" { xfail *-*-* } } } */
54/* { dg-final { scan-tree-dump-times "1 loops carried no dependency" 1 "graphite" } } */
1d340638
TS
55/* { dg-final { scan-tree-dump-times "loopfn.0" 4 "optimized" } } */
56/* { dg-final { scan-tree-dump-times "loopfn.1" 4 "optimized" } } */