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/] [vla1.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 :: xcharacter (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.!$omp parallel default (none) firstprivate (c, d, e, f, g, h, i, j, k) &!$omp & firstprivate (s, t, u, v) reduction (.or.:l) num_threads (6) &!$omp private (p, q, r, w, x, y)l = l .or. c .ne. 'abcdefghijkl'l = l .or. d .ne. 'ABCDEFG'l = l .or. s .ne. 'PQRSTUV'do 100, p = 1, 2do 100, q = 3, 7do 100, r = 1, 7if (q .lt. 6) l = l .or. e(p, q, r) .ne. 5 + p + q + 2 * rl = l .or. f(p, q, r) .ne. 25 + p + q + 2 * rif (r .lt. 6 .and. q + r .le. 8) l = l .or. g(r, q) .ne. '0123456789AB'if (r .lt. 6 .and. q + r .gt. 8) l = l .or. g(r, q) .ne. '9876543210ZY'if (r .lt. 6 .and. q + r .le. 8) l = l .or. h(r, q) .ne. '0123456'if (r .lt. 6 .and. q + r .gt. 8) l = l .or. h(r, q) .ne. '9876543'if (q .lt. 6) l = l .or. t(p, q, r) .ne. -10 + p - q + 2 * rl = l .or. u(p, q, r) .ne. 30 - p + q - 2 * rif (r .lt. 6 .and. q + r .le. 8) l = l .or. v(r, q) .ne. '_+|/Oo_'if (r .lt. 6 .and. q + r .gt. 8) l = l .or. v(r, q) .ne. '///|||!'100 continuedo 101, p = 3, 5do 101, q = 2, 6do 101, r = 1, 7l = l .or. i(p - 2, q - 1, r) .ne. 7.5 * p * q * rl = l .or. j(p, q + 3, r + 6) .ne. 9.5 * p * q * r101 continuedo 102, p = 1, 5do 102, q = 4, 6l = l .or. k(p, 1, q - 3) .ne. 19 + p + 7 + 3 * q102 continuex = 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 barriery = ''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)!$omp end parallelif (l) call abortend 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
