aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.3/libgomp/testsuite/libgomp.c/reduction-4.c
diff options
context:
space:
mode:
authorJing Yu <jingyu@google.com>2010-07-22 14:03:48 -0700
committerJing Yu <jingyu@google.com>2010-07-22 14:03:48 -0700
commitb094d6c4bf572654a031ecc4afe675154c886dc5 (patch)
tree89394c56b05e13a5413ee60237d65b0214fd98e2 /gcc-4.4.3/libgomp/testsuite/libgomp.c/reduction-4.c
parentdc34721ac3bf7e3c406fba8cfe9d139393345ec5 (diff)
downloadtoolchain_gcc-b094d6c4bf572654a031ecc4afe675154c886dc5.tar.gz
toolchain_gcc-b094d6c4bf572654a031ecc4afe675154c886dc5.tar.bz2
toolchain_gcc-b094d6c4bf572654a031ecc4afe675154c886dc5.zip
commit gcc-4.4.3 which is used to build gcc-4.4.3 Android toolchain in master.
The source is based on fsf gcc-4.4.3 and contains local patches which are recorded in gcc-4.4.3/README.google. Change-Id: Id8c6d6927df274ae9749196a1cc24dbd9abc9887
Diffstat (limited to 'gcc-4.4.3/libgomp/testsuite/libgomp.c/reduction-4.c')
-rw-r--r--gcc-4.4.3/libgomp/testsuite/libgomp.c/reduction-4.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc-4.4.3/libgomp/testsuite/libgomp.c/reduction-4.c b/gcc-4.4.3/libgomp/testsuite/libgomp.c/reduction-4.c
new file mode 100644
index 000000000..23e9d6d5b
--- /dev/null
+++ b/gcc-4.4.3/libgomp/testsuite/libgomp.c/reduction-4.c
@@ -0,0 +1,36 @@
+#include <omp.h>
+#include <stdlib.h>
+
+int
+main (void)
+{
+ int i = 0, j = 0, k = 0, l = 0;
+#pragma omp parallel num_threads(4) reduction(-:i) reduction(|:k) \
+ reduction(^:l)
+ {
+ if (i != 0 || k != 0 || l != 0)
+#pragma omp atomic
+ j |= 1;
+
+ if (omp_get_num_threads () != 4)
+#pragma omp atomic
+ j |= 2;
+
+ i = omp_get_thread_num ();
+ k = 1 << (2 * i);
+ l = 0xea << (3 * i);
+ }
+
+ if (j & 1)
+ abort ();
+ if ((j & 2) == 0)
+ {
+ if (i != (0 + 1 + 2 + 3))
+ abort ();
+ if (k != 0x55)
+ abort ();
+ if (l != 0x1e93a)
+ abort ();
+ }
+ return 0;
+}