Skip various cmp-mem-const tests on lp64 hppa*-*-*
[official-gcc.git] / libgomp / testsuite / libgomp.c-c++-common / lastprivate-conditional-10.c
blob2f7503903fd981e926a373a308aa66a4649281a0
1 /* { dg-do run } */
3 int v, x;
5 __attribute__((noipa)) int
6 foo (int *a)
8 #pragma omp parallel for simd lastprivate (conditional: x) schedule(simd: static) if (simd: 0)
9 for (int i = 0; i < 128; i++)
10 if (a[i])
11 x = a[i];
12 return x;
15 __attribute__((noipa)) int
16 bar (int *a, int *b)
18 #pragma omp parallel
19 #pragma omp for simd lastprivate (conditional: x, v) schedule(static, 16) simdlen (1)
20 for (int i = 16; i < 128; ++i)
22 if (a[i])
23 x = a[i];
24 if (b[i])
25 v = b[i] + 10;
27 return x;
30 __attribute__((noipa)) int
31 baz (int *a)
33 #pragma omp parallel for simd if (simd: 0) lastprivate (conditional: x) schedule(simd: dynamic, 16)
34 for (int i = 0; i < 128; i++)
35 if (a[i])
36 x = a[i] + 5;
37 return x;
40 int
41 main ()
43 int a[128], b[128], i;
44 for (i = 0; i < 128; i++)
46 a[i] = ((i % 11) == 2) ? i + 10 : 0;
47 asm volatile ("" : "+g" (i));
48 b[i] = ((i % 13) == 5) ? i * 2 : 0;
50 if (foo (a) != 133)
51 __builtin_abort ();
52 if (bar (b, a) != 244 || v != 143)
53 __builtin_abort ();
54 if (baz (b) != 249)
55 __builtin_abort ();
56 return 0;