aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.fortran/reduction5.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.fortran/reduction5.f90')
-rw-r--r--gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.fortran/reduction5.f9041
1 files changed, 41 insertions, 0 deletions
diff --git a/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.fortran/reduction5.f90 b/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.fortran/reduction5.f90
new file mode 100644
index 000000000..bfdd43a93
--- /dev/null
+++ b/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.fortran/reduction5.f90
@@ -0,0 +1,41 @@
+! { dg-do run }
+
+module reduction5
+ intrinsic ior, min, max
+end module reduction5
+
+ call test1
+ call test2
+contains
+ subroutine test1
+ use reduction5, bitwise_or => ior
+ integer :: n
+ n = Z'f'
+!$omp parallel sections num_threads (3) reduction (bitwise_or: n)
+ n = ior (n, Z'20')
+!$omp section
+ n = bitwise_or (Z'410', n)
+!$omp section
+ n = bitwise_or (n, Z'2000')
+!$omp end parallel sections
+ if (n .ne. Z'243f') call abort
+ end subroutine
+ subroutine test2
+ use reduction5, min => max, max => min
+ integer :: m, n
+ m = 8
+ n = 4
+!$omp parallel sections num_threads (3) reduction (min: n) &
+!$omp & reduction (max: m)
+ if (m .gt. 13) m = 13
+ if (n .lt. 11) n = 11
+!$omp section
+ if (m .gt. 5) m = 5
+ if (n .lt. 15) n = 15
+!$omp section
+ if (m .gt. 3) m = 3
+ if (n .lt. -1) n = -1
+!$omp end parallel sections
+ if (m .ne. 3 .or. n .ne. 15) call abort
+ end subroutine test2
+end