tree-optimization/113385 - wrong loop father with early exit vectorization
[official-gcc.git] / gcc / testsuite / gfortran.dg / gomp / requires-9.f90
blobd90940d95dc7bc0f4efab953c748fe9dbb153572
1 ! { dg-additional-options "-fdump-tree-original" }
3 module relaxed
4 !$omp requires atomic_default_mem_order(relaxed)
5 end module relaxed
7 module seq
8 !$omp requires atomic_default_mem_order(seq_cst)
9 end module seq
11 module acq
12 !$omp requires atomic_default_mem_order(acq_rel)
13 end module acq
15 subroutine sub1
16 !$omp atomic ! <= relaxed
17 i1 = i1 + 5
18 end subroutine
20 subroutine sub2
21 !$omp atomic seq_cst
22 i2 = i2 + 5
23 end subroutine
25 subroutine sub3
26 use relaxed
27 !$omp atomic
28 i3 = i3 + 5
29 end subroutine
31 subroutine sub4
32 use relaxed
33 !$omp atomic seq_cst
34 i4 = i4 + 5
35 end subroutine
37 subroutine sub5
38 use seq
39 !$omp atomic
40 i5 = i5 + 5
41 contains
42 subroutine bar
43 block
44 !$omp atomic
45 i5b = i5b + 5
46 end block
47 end
48 end subroutine
50 subroutine sub6
51 use seq
52 !$omp atomic seq_cst
53 i6 = i6 + 5
54 end subroutine
56 subroutine sub7
57 use acq
58 !$omp atomic
59 i7 = i7 + 5
60 contains
61 subroutine foobar
62 block
63 !$omp atomic
64 i7b = i7b + 5
65 end block
66 end
67 end subroutine
69 subroutine sub8
70 use acq
71 !$omp atomic seq_cst
72 i8 = i8 + 5
73 end subroutine
75 ! { dg-final { scan-tree-dump-times "#pragma omp atomic relaxed\[\n\r]\[^\n\r]*&i1 =" 1 "original" } }
76 ! { dg-final { scan-tree-dump-times "#pragma omp atomic seq_cst\[\n\r]\[^\n\r]*&i2 =" 1 "original" } }
77 ! { dg-final { scan-tree-dump-times "#pragma omp atomic relaxed\[\n\r]\[^\n\r]*&i3 =" 1 "original" } }
78 ! { dg-final { scan-tree-dump-times "#pragma omp atomic seq_cst\[\n\r]\[^\n\r]*&i4 =" 1 "original" } }
79 ! { dg-final { scan-tree-dump-times "#pragma omp atomic seq_cst\[\n\r]\[^\n\r]*&i5 =" 1 "original" } }
80 ! { dg-final { scan-tree-dump-times "#pragma omp atomic seq_cst\[\n\r]\[^\n\r]*&i5 =" 1 "original" } }
81 ! { dg-final { scan-tree-dump-times "#pragma omp atomic seq_cst\[\n\r]\[^\n\r]*&i5b =" 1 "original" } }
82 ! { dg-final { scan-tree-dump-times "#pragma omp atomic seq_cst\[\n\r]\[^\n\r]*&i6 =" 1 "original" } }
83 ! { dg-final { scan-tree-dump-times "#pragma omp atomic release\[\n\r]\[^\n\r]*&i7 =" 1 "original" } }
84 ! { dg-final { scan-tree-dump-times "#pragma omp atomic release\[\n\r]\[^\n\r]*&i7b =" 1 "original" } }
85 ! { dg-final { scan-tree-dump-times "#pragma omp atomic seq_cst\[\n\r]\[^\n\r]*&i8 =" 1 "original" } }