URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [libgomp/] [testsuite/] [libgomp.fortran/] [vla5.f90] - Rev 438
Go to most recent revision | Compare with Previous | Blame | View Log
! { dg-do run }call testcontainssubroutine check (x, y, l)integer :: x, ylogical :: ll = l .or. x .ne. yend subroutine checksubroutine foo (c, d, e, f, g, h, i, j, k, n)use omp_libinteger :: ncharacter (len = *) :: ccharacter (len = n) :: dinteger, dimension (2, 3:5, n) :: einteger, dimension (2, 3:n, n) :: fcharacter (len = *), dimension (5, 3:n) :: gcharacter (len = n), dimension (5, 3:n) :: hreal, dimension (:, :, :) :: idouble precision, dimension (3:, 5:, 7:) :: jinteger, dimension (:, :, :) :: klogical :: linteger :: p, q, rcharacter (len = n) :: sinteger, dimension (2, 3:5, n) :: tinteger, dimension (2, 3:n, n) :: ucharacter (len = n), dimension (5, 3:n) :: vcharacter (len = 2 * n + 24) :: winteger :: x, z, z2character (len = 1) :: ys = 'PQRSTUV'forall (p = 1:2, q = 3:5, r = 1:7) t(p, q, r) = -10 + p - q + 2 * rforall (p = 1:2, q = 3:7, r = 1:7) u(p, q, r) = 30 - p + q - 2 * rforall (p = 1:5, q = 3:7, p + q .le. 8) v(p, q) = '_+|/Oo_'forall (p = 1:5, q = 3:7, p + q .gt. 8) v(p, q) = '///|||!'l = .false.call omp_set_dynamic (.false.)call omp_set_num_threads (6)!$omp parallel do default (none) lastprivate (c, d, e, f, g, h, i, j, k) &!$omp & lastprivate (s, t, u, v) reduction (.or.:l) num_threads (6) &!$omp private (p, q, r, w, x, y) schedule (static) shared (z2)do 110 z = 0, omp_get_num_threads () - 1if (omp_get_thread_num () .eq. 0) z2 = omp_get_num_threads ()x = omp_get_thread_num ()w = ''if (x .eq. 0) w = 'thread0thr_number_0THREAD0THR_NUMBER_0'if (x .eq. 1) w = 'thread1thr_number_1THREAD1THR_NUMBER_1'if (x .eq. 2) w = 'thread2thr_number_2THREAD2THR_NUMBER_2'if (x .eq. 3) w = 'thread3thr_number_3THREAD3THR_NUMBER_3'if (x .eq. 4) w = 'thread4thr_number_4THREAD4THR_NUMBER_4'if (x .eq. 5) w = 'thread5thr_number_5THREAD5THR_NUMBER_5'c = w(8:19)d = w(1:7)forall (p = 1:2, q = 3:5, r = 1:7) e(p, q, r) = 5 * x + p + q + 2 * rforall (p = 1:2, q = 3:7, r = 1:7) f(p, q, r) = 25 * x + p + q + 2 * rforall (p = 1:5, q = 3:7, p + q .le. 8) g(p, q) = w(8:19)forall (p = 1:5, q = 3:7, p + q .gt. 8) g(p, q) = w(27:38)forall (p = 1:5, q = 3:7, p + q .le. 8) h(p, q) = w(1:7)forall (p = 1:5, q = 3:7, p + q .gt. 8) h(p, q) = w(20:26)forall (p = 3:5, q = 2:6, r = 1:7) i(p - 2, q - 1, r) = (7.5 + x) * p * q * rforall (p = 3:5, q = 2:6, r = 1:7) j(p, q + 3, r + 6) = (9.5 + x) * p * q * rforall (p = 1:5, q = 7:7, r = 4:6) k(p, q - 6, r - 3) = 19 + x + p + q + 3 * rs = w(20:26)forall (p = 1:2, q = 3:5, r = 1:7) t(p, q, r) = -10 + x + p - q + 2 * rforall (p = 1:2, q = 3:7, r = 1:7) u(p, q, r) = 30 - x - p + q - 2 * rforall (p = 1:5, q = 3:7, p + q .le. 8) v(p, q) = w(1:7)forall (p = 1:5, q = 3:7, p + q .gt. 8) v(p, q) = w(20:26)!$omp barrier ! { dg-warning "may not be closely nested" }y = ''if (x .eq. 0) y = '0'if (x .eq. 1) y = '1'if (x .eq. 2) y = '2'if (x .eq. 3) y = '3'if (x .eq. 4) y = '4'if (x .eq. 5) y = '5'l = l .or. w(7:7) .ne. yl = l .or. w(19:19) .ne. yl = l .or. w(26:26) .ne. yl = l .or. w(38:38) .ne. yl = l .or. c .ne. w(8:19)l = l .or. d .ne. w(1:7)l = l .or. s .ne. w(20:26)do 103, p = 1, 2do 103, q = 3, 7do 103, r = 1, 7if (q .lt. 6) l = l .or. e(p, q, r) .ne. 5 * x + p + q + 2 * rl = l .or. f(p, q, r) .ne. 25 * x + p + q + 2 * rif (r .lt. 6 .and. q + r .le. 8) l = l .or. g(r, q) .ne. w(8:19)if (r .lt. 6 .and. q + r .gt. 8) l = l .or. g(r, q) .ne. w(27:38)if (r .lt. 6 .and. q + r .le. 8) l = l .or. h(r, q) .ne. w(1:7)if (r .lt. 6 .and. q + r .gt. 8) l = l .or. h(r, q) .ne. w(20:26)if (q .lt. 6) l = l .or. t(p, q, r) .ne. -10 + x + p - q + 2 * rl = l .or. u(p, q, r) .ne. 30 - x - p + q - 2 * rif (r .lt. 6 .and. q + r .le. 8) l = l .or. v(r, q) .ne. w(1:7)if (r .lt. 6 .and. q + r .gt. 8) l = l .or. v(r, q) .ne. w(20:26)103 continuedo 104, p = 3, 5do 104, q = 2, 6do 104, r = 1, 7l = l .or. i(p - 2, q - 1, r) .ne. (7.5 + x) * p * q * rl = l .or. j(p, q + 3, r + 6) .ne. (9.5 + x) * p * q * r104 continuedo 105, p = 1, 5do 105, q = 4, 6l = l .or. k(p, 1, q - 3) .ne. 19 + x + p + 7 + 3 * q105 continuecall check (size (e, 1), 2, l)call check (size (e, 2), 3, l)call check (size (e, 3), 7, l)call check (size (e), 42, l)call check (size (f, 1), 2, l)call check (size (f, 2), 5, l)call check (size (f, 3), 7, l)call check (size (f), 70, l)call check (size (g, 1), 5, l)call check (size (g, 2), 5, l)call check (size (g), 25, l)call check (size (h, 1), 5, l)call check (size (h, 2), 5, l)call check (size (h), 25, l)call check (size (i, 1), 3, l)call check (size (i, 2), 5, l)call check (size (i, 3), 7, l)call check (size (i), 105, l)call check (size (j, 1), 4, l)call check (size (j, 2), 5, l)call check (size (j, 3), 7, l)call check (size (j), 140, l)call check (size (k, 1), 5, l)call check (size (k, 2), 1, l)call check (size (k, 3), 3, l)call check (size (k), 15, l)110 continue!$omp end parallel doif (l) call abortif (z2 == 6) thenx = 5w = 'thread5thr_number_5THREAD5THR_NUMBER_5'y = '5'l = l .or. w(7:7) .ne. yl = l .or. w(19:19) .ne. yl = l .or. w(26:26) .ne. yl = l .or. w(38:38) .ne. yl = l .or. c .ne. w(8:19)l = l .or. d .ne. w(1:7)l = l .or. s .ne. w(20:26)do 113, p = 1, 2do 113, q = 3, 7do 113, r = 1, 7if (q .lt. 6) l = l .or. e(p, q, r) .ne. 5 * x + p + q + 2 * rl = l .or. f(p, q, r) .ne. 25 * x + p + q + 2 * rif (r .lt. 6 .and. q + r .le. 8) l = l .or. g(r, q) .ne. w(8:19)if (r .lt. 6 .and. q + r .gt. 8) l = l .or. g(r, q) .ne. w(27:38)if (r .lt. 6 .and. q + r .le. 8) l = l .or. h(r, q) .ne. w(1:7)if (r .lt. 6 .and. q + r .gt. 8) l = l .or. h(r, q) .ne. w(20:26)if (q .lt. 6) l = l .or. t(p, q, r) .ne. -10 + x + p - q + 2 * rl = l .or. u(p, q, r) .ne. 30 - x - p + q - 2 * rif (r .lt. 6 .and. q + r .le. 8) l = l .or. v(r, q) .ne. w(1:7)if (r .lt. 6 .and. q + r .gt. 8) l = l .or. v(r, q) .ne. w(20:26)113 continuedo 114, p = 3, 5do 114, q = 2, 6do 114, r = 1, 7l = l .or. i(p - 2, q - 1, r) .ne. (7.5 + x) * p * q * rl = l .or. j(p, q + 3, r + 6) .ne. (9.5 + x) * p * q * r114 continuedo 115, p = 1, 5do 115, q = 4, 6l = l .or. k(p, 1, q - 3) .ne. 19 + x + p + 7 + 3 * q115 continueif (l) call abortend ifend subroutine foosubroutine testcharacter (len = 12) :: ccharacter (len = 7) :: dinteger, dimension (2, 3:5, 7) :: einteger, dimension (2, 3:7, 7) :: fcharacter (len = 12), dimension (5, 3:7) :: gcharacter (len = 7), dimension (5, 3:7) :: hreal, dimension (3:5, 2:6, 1:7) :: idouble precision, dimension (3:6, 2:6, 1:7) :: jinteger, dimension (1:5, 7:7, 4:6) :: kinteger :: p, q, rc = 'abcdefghijkl'd = 'ABCDEFG'forall (p = 1:2, q = 3:5, r = 1:7) e(p, q, r) = 5 + p + q + 2 * rforall (p = 1:2, q = 3:7, r = 1:7) f(p, q, r) = 25 + p + q + 2 * rforall (p = 1:5, q = 3:7, p + q .le. 8) g(p, q) = '0123456789AB'forall (p = 1:5, q = 3:7, p + q .gt. 8) g(p, q) = '9876543210ZY'forall (p = 1:5, q = 3:7, p + q .le. 8) h(p, q) = '0123456'forall (p = 1:5, q = 3:7, p + q .gt. 8) h(p, q) = '9876543'forall (p = 3:5, q = 2:6, r = 1:7) i(p, q, r) = 7.5 * p * q * rforall (p = 3:6, q = 2:6, r = 1:7) j(p, q, r) = 9.5 * p * q * rforall (p = 1:5, q = 7:7, r = 4:6) k(p, q, r) = 19 + p + q + 3 * rcall foo (c, d, e, f, g, h, i, j, k, 7)end subroutine testend
Go to most recent revision | Compare with Previous | Blame | View Log
