Set num_threads to 50 on 32-bit hppa in two libgomp loop tests
[official-gcc.git] / libgomp / testsuite / libgomp.c-c++-common / ptr-attach-2.c
blob889a4a253ae83fba255bb41aa32a0ea347eeb784
1 #include <stdlib.h>
3 struct blk { int x, y; };
4 struct L
6 #define N 10
7 struct {
8 int num_blocks[N];
9 struct blk * blocks[N];
10 } m;
13 void foo (struct L *l)
15 for (int i = 0; i < N; i++)
17 l->m.blocks[i] = (struct blk *) malloc (sizeof (struct blk) * N);
18 l->m.num_blocks[i] = N;
21 #pragma omp target enter data map(to:l[:1])
22 for (int i = 0; i < N; i++)
24 #pragma omp target enter data map(to:l->m.blocks[i][:l->m.num_blocks[i]])
27 #pragma omp target
29 for (int i = 0; i < N; i++)
30 for (int j = 0; j < N; j++)
32 l->m.blocks[i][j].x = i + j;
33 l->m.blocks[i][j].y = i * j;
37 for (int i = 0; i < N; i++)
39 #pragma omp target exit data map(from:l->m.blocks[i][:l->m.num_blocks[i]])
41 #pragma omp target exit data map(from:l[:1])
44 for (int i = 0; i < N; i++)
45 for (int j = 0; j < N; j++)
47 if (l->m.blocks[i][j].x != i + j)
48 abort ();
49 if (l->m.blocks[i][j].y != i * j)
50 abort ();
55 int main (void)
57 struct L l;
58 foo (&l);
59 return 0;