1! { dg-do run } 2 3module reduction5 4 intrinsic ior, min, max 5end module reduction5 6 7 call test1 8 call test2 9contains 10 subroutine test1 11 use reduction5, bitwise_or => ior 12 integer :: n 13 n = Z'f' 14!$omp parallel sections num_threads (3) reduction (bitwise_or: n) 15 n = ior (n, Z'20') 16!$omp section 17 n = bitwise_or (Z'410', n) 18!$omp section 19 n = bitwise_or (n, Z'2000') 20!$omp end parallel sections 21 if (n .ne. Z'243f') call abort 22 end subroutine 23 subroutine test2 24 use reduction5, min => max, max => min 25 integer :: m, n 26 m = 8 27 n = 4 28!$omp parallel sections num_threads (3) reduction (min: n) & 29!$omp & reduction (max: m) 30 if (m .gt. 13) m = 13 31 if (n .lt. 11) n = 11 32!$omp section 33 if (m .gt. 5) m = 5 34 if (n .lt. 15) n = 15 35!$omp section 36 if (m .gt. 3) m = 3 37 if (n .lt. -1) n = -1 38!$omp end parallel sections 39 if (m .ne. 3 .or. n .ne. 15) call abort 40 end subroutine test2 41end 42 43! { dg-final { cleanup-modules "reduction5" } } 44