aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.3/libgomp/testsuite/libgomp.c/nqueens-1.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.4.3/libgomp/testsuite/libgomp.c/nqueens-1.c')
-rw-r--r--gcc-4.4.3/libgomp/testsuite/libgomp.c/nqueens-1.c66
1 files changed, 0 insertions, 66 deletions
diff --git a/gcc-4.4.3/libgomp/testsuite/libgomp.c/nqueens-1.c b/gcc-4.4.3/libgomp/testsuite/libgomp.c/nqueens-1.c
deleted file mode 100644
index 1fdc67b29..000000000
--- a/gcc-4.4.3/libgomp/testsuite/libgomp.c/nqueens-1.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* { dg-do run } */
-/* { dg-options "-O2 -fopenmp" } */
-/* { dg-require-effective-target tls_runtime } */
-
-#include <omp.h>
-#include <stdio.h>
-#include <string.h>
-
-int cnt;
-#pragma omp threadprivate (cnt)
-
-void
-nqueens (char *a, int n, int pos)
-{
- /* b[i] = j means the queen in i-th row is in column j. */
- char b[pos + 1];
- int i, j;
- memcpy (b, a, pos);
- for (i = 0; i < n; i++)
- {
- for (j = 0; j < pos; j++)
- if (b[j] == i || b[j] == i + pos - j || i == b[j] + pos - j)
- break;
- if (j < pos)
- continue;
- if (pos == n - 1)
- /* Found a solution. Could output it here. */
- ++cnt;
- else
- {
- b[pos] = i;
- #pragma omp task
- nqueens (b, n, pos + 1);
- }
- }
-}
-
-int
-main (int argc, char **argv)
-{
- int n = 8;
- if (argc >= 2)
- n = strtoul (argv[1], NULL, 0);
- if (n < 1 || n > 127)
- {
- fprintf (stderr, "invalid count %d\n", n);
- return 1;
- }
- cnt = 0;
- double stime = omp_get_wtime ();
- nqueens ("", n, 0);
- printf ("serial N %d solutions # %d time %f\n", n, cnt, omp_get_wtime () - stime);
- #pragma omp parallel
- cnt = 0;
- stime = omp_get_wtime ();
- int tempcnt = 0;
- #pragma omp parallel reduction (+:tempcnt)
- {
- #pragma omp single
- nqueens ("", n, 0);
- tempcnt = cnt;
- }
- cnt = tempcnt;
- printf ("parallel N %d solutions # %d time %f\n", n, cnt, omp_get_wtime () - stime);
- return 0;
-}