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/] [vla2.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) :: yl = .false.!$omp parallel default (none) private (c, d, e, f, g, h, i, j, k) &!$omp & private (s, t, u, v) reduction (.or.:l) num_threads (6) &!$omp private (p, q, r, w, x, y)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 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, 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
