diff options
author | Dan Albert <danalbert@google.com> | 2015-06-17 11:09:54 -0700 |
---|---|---|
committer | Dan Albert <danalbert@google.com> | 2015-06-17 14:15:22 -0700 |
commit | f378ebf14df0952eae870c9865bab8326aa8f137 (patch) | |
tree | 31794503eb2a8c64ea5f313b93100f1163afcffb /gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c/appendix-a/a.18.1.c | |
parent | 2c58169824949d3a597d9fa81931e001ef9b1bd0 (diff) | |
download | toolchain_gcc-f378ebf14df0952eae870c9865bab8326aa8f137.tar.gz toolchain_gcc-f378ebf14df0952eae870c9865bab8326aa8f137.tar.bz2 toolchain_gcc-f378ebf14df0952eae870c9865bab8326aa8f137.zip |
Delete old versions of GCC.
Change-Id: I710f125d905290e1024cbd67f48299861790c66c
Diffstat (limited to 'gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c/appendix-a/a.18.1.c')
-rw-r--r-- | gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c/appendix-a/a.18.1.c | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c/appendix-a/a.18.1.c b/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c/appendix-a/a.18.1.c deleted file mode 100644 index 388763e59..000000000 --- a/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c/appendix-a/a.18.1.c +++ /dev/null @@ -1,67 +0,0 @@ -/* { dg-do run } */ - -#include <omp.h> -#include <stdio.h> - -extern void abort (void); - -#define NUMBER_OF_THREADS 4 - -int synch[NUMBER_OF_THREADS]; -int work[NUMBER_OF_THREADS]; -int result[NUMBER_OF_THREADS]; -int -fn1 (int i) -{ - return i * 2; -} - -int -fn2 (int a, int b) -{ - return a + b; -} - -int -main () -{ - int i, iam, neighbor; - omp_set_num_threads (NUMBER_OF_THREADS); -#pragma omp parallel private(iam,neighbor) shared(work,synch) - { - iam = omp_get_thread_num (); - synch[iam] = 0; -#pragma omp barrier - /*Do computation into my portion of work array */ - work[iam] = fn1 (iam); - /* Announce that I am done with my work. The first flush - * ensures that my work is made visible before synch. - * The second flush ensures that synch is made visible. - */ -#pragma omp flush(work,synch) - synch[iam] = 1; -#pragma omp flush(synch) - /* Wait for neighbor. The first flush ensures that synch is read - * from memory, rather than from the temporary view of memory. - * The second flush ensures that work is read from memory, and - * is done so after the while loop exits. - */ - neighbor = (iam > 0 ? iam : omp_get_num_threads ()) - 1; - while (synch[neighbor] == 0) - { -#pragma omp flush(synch) - } -#pragma omp flush(work,synch) - /* Read neighbor's values of work array */ - result[iam] = fn2 (work[neighbor], work[iam]); - } - /* output result here */ - for (i = 0; i < NUMBER_OF_THREADS; i++) - { - neighbor = (i > 0 ? i : NUMBER_OF_THREADS) - 1; - if (result[i] != i * 2 + neighbor * 2) - abort (); - } - - return 0; -} |