OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgomp/] [testsuite/] [libgomp.fortran/] [vla7.f90] - Blame information for rev 735

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 735 jeremybenn
! { dg-do run }
2
! { dg-options "-w" }
3
 
4
  character (6) :: c, f2
5
  character (6) :: d(2)
6
  c = f1 (6)
7
  if (c .ne. 'opqrst') call abort
8
  c = f2 (6)
9
  if (c .ne. '_/!!/_') call abort
10
  d = f3 (6)
11
  if (d(1) .ne. 'opqrst' .or. d(2) .ne. 'a') call abort
12
  d = f4 (6)
13
  if (d(1) .ne. 'Opqrst' .or. d(2) .ne. 'A') call abort
14
contains
15
  function f1 (n)
16
    use omp_lib
17
    character (n) :: f1
18
    logical :: l
19
    f1 = 'abcdef'
20
    l = .false.
21
!$omp parallel firstprivate (f1) reduction (.or.:l) num_threads (2)
22
    l = f1 .ne. 'abcdef'
23
    if (omp_get_thread_num () .eq. 0) f1 = 'ijklmn'
24
    if (omp_get_thread_num () .eq. 1) f1 = 'IJKLMN'
25
!$omp barrier
26
    l = l .or. (omp_get_thread_num () .eq. 0 .and. f1 .ne. 'ijklmn')
27
    l = l .or. (omp_get_thread_num () .eq. 1 .and. f1 .ne. 'IJKLMN')
28
!$omp end parallel
29
    f1 = 'zZzz_z'
30
!$omp parallel shared (f1) reduction (.or.:l) num_threads (2)
31
    l = l .or. f1 .ne. 'zZzz_z'
32
!$omp barrier
33
!$omp master
34
    f1 = 'abc'
35
!$omp end master
36
!$omp barrier
37
    l = l .or. f1 .ne. 'abc'
38
!$omp barrier
39
    if (omp_get_thread_num () .eq. 1) f1 = 'def'
40
!$omp barrier
41
    l = l .or. f1 .ne. 'def'
42
!$omp end parallel
43
    if (l) call abort
44
    f1 = 'opqrst'
45
  end function f1
46
  function f3 (n)
47
    use omp_lib
48
    character (n), dimension (2) :: f3
49
    logical :: l
50
    f3 = 'abcdef'
51
    l = .false.
52
!$omp parallel firstprivate (f3) reduction (.or.:l) num_threads (2)
53
    l = any (f3 .ne. 'abcdef')
54
    if (omp_get_thread_num () .eq. 0) f3 = 'ijklmn'
55
    if (omp_get_thread_num () .eq. 1) f3 = 'IJKLMN'
56
!$omp barrier
57
    l = l .or. (omp_get_thread_num () .eq. 0 .and. any (f3 .ne. 'ijklmn'))
58
    l = l .or. (omp_get_thread_num () .eq. 1 .and. any (f3 .ne. 'IJKLMN'))
59
!$omp end parallel
60
    f3 = 'zZzz_z'
61
!$omp parallel shared (f3) reduction (.or.:l) num_threads (2)
62
    l = l .or. any (f3 .ne. 'zZzz_z')
63
!$omp barrier
64
!$omp master
65
    f3 = 'abc'
66
!$omp end master
67
!$omp barrier
68
    l = l .or. any (f3 .ne. 'abc')
69
!$omp barrier
70
    if (omp_get_thread_num () .eq. 1) f3 = 'def'
71
!$omp barrier
72
    l = l .or. any (f3 .ne. 'def')
73
!$omp end parallel
74
    if (l) call abort
75
    f3(1) = 'opqrst'
76
    f3(2) = 'a'
77
  end function f3
78
  function f4 (n)
79
    use omp_lib
80
    character (n), dimension (n - 4) :: f4
81
    logical :: l
82
    f4 = 'abcdef'
83
    l = .false.
84
!$omp parallel firstprivate (f4) reduction (.or.:l) num_threads (2)
85
    l = any (f4 .ne. 'abcdef')
86
    if (omp_get_thread_num () .eq. 0) f4 = 'ijklmn'
87
    if (omp_get_thread_num () .eq. 1) f4 = 'IJKLMN'
88
!$omp barrier
89
    l = l .or. (omp_get_thread_num () .eq. 0 .and. any (f4 .ne. 'ijklmn'))
90
    l = l .or. (omp_get_thread_num () .eq. 1 .and. any (f4 .ne. 'IJKLMN'))
91
    l = l .or. size (f4) .ne. 2
92
!$omp end parallel
93
    f4 = 'zZzz_z'
94
!$omp parallel shared (f4) reduction (.or.:l) num_threads (2)
95
    l = l .or. any (f4 .ne. 'zZzz_z')
96
!$omp barrier
97
!$omp master
98
    f4 = 'abc'
99
!$omp end master
100
!$omp barrier
101
    l = l .or. any (f4 .ne. 'abc')
102
!$omp barrier
103
    if (omp_get_thread_num () .eq. 1) f4 = 'def'
104
!$omp barrier
105
    l = l .or. any (f4 .ne. 'def')
106
    l = l .or. size (f4) .ne. 2
107
!$omp end parallel
108
    if (l) call abort
109
    f4(1) = 'Opqrst'
110
    f4(2) = 'A'
111
  end function f4
112
end
113
function f2 (n)
114
  use omp_lib
115
  character (*) :: f2
116
  logical :: l
117
  f2 = 'abcdef'
118
  l = .false.
119
!$omp parallel firstprivate (f2) reduction (.or.:l) num_threads (2)
120
  l = f2 .ne. 'abcdef'
121
  if (omp_get_thread_num () .eq. 0) f2 = 'ijklmn'
122
  if (omp_get_thread_num () .eq. 1) f2 = 'IJKLMN'
123
!$omp barrier
124
  l = l .or. (omp_get_thread_num () .eq. 0 .and. f2 .ne. 'ijklmn')
125
  l = l .or. (omp_get_thread_num () .eq. 1 .and. f2 .ne. 'IJKLMN')
126
!$omp end parallel
127
  f2 = 'zZzz_z'
128
!$omp parallel shared (f2) reduction (.or.:l) num_threads (2)
129
  l = l .or. f2 .ne. 'zZzz_z'
130
!$omp barrier
131
!$omp master
132
  f2 = 'abc'
133
!$omp end master
134
!$omp barrier
135
  l = l .or. f2 .ne. 'abc'
136
!$omp barrier
137
  if (omp_get_thread_num () .eq. 1) f2 = 'def'
138
!$omp barrier
139
  l = l .or. f2 .ne. 'def'
140
!$omp end parallel
141
  if (l) call abort
142
  f2 = '_/!!/_'
143
end function f2

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.