blob: d90940d95dc7bc0f4efab953c748fe9dbb153572 [file] [log] [blame]
! { dg-additional-options "-fdump-tree-original" }
module relaxed
!$omp requires atomic_default_mem_order(relaxed)
end module relaxed
module seq
!$omp requires atomic_default_mem_order(seq_cst)
end module seq
module acq
!$omp requires atomic_default_mem_order(acq_rel)
end module acq
subroutine sub1
!$omp atomic ! <= relaxed
i1 = i1 + 5
end subroutine
subroutine sub2
!$omp atomic seq_cst
i2 = i2 + 5
end subroutine
subroutine sub3
use relaxed
!$omp atomic
i3 = i3 + 5
end subroutine
subroutine sub4
use relaxed
!$omp atomic seq_cst
i4 = i4 + 5
end subroutine
subroutine sub5
use seq
!$omp atomic
i5 = i5 + 5
contains
subroutine bar
block
!$omp atomic
i5b = i5b + 5
end block
end
end subroutine
subroutine sub6
use seq
!$omp atomic seq_cst
i6 = i6 + 5
end subroutine
subroutine sub7
use acq
!$omp atomic
i7 = i7 + 5
contains
subroutine foobar
block
!$omp atomic
i7b = i7b + 5
end block
end
end subroutine
subroutine sub8
use acq
!$omp atomic seq_cst
i8 = i8 + 5
end subroutine
! { dg-final { scan-tree-dump-times "#pragma omp atomic relaxed\[\n\r]\[^\n\r]*&i1 =" 1 "original" } }
! { dg-final { scan-tree-dump-times "#pragma omp atomic seq_cst\[\n\r]\[^\n\r]*&i2 =" 1 "original" } }
! { dg-final { scan-tree-dump-times "#pragma omp atomic relaxed\[\n\r]\[^\n\r]*&i3 =" 1 "original" } }
! { dg-final { scan-tree-dump-times "#pragma omp atomic seq_cst\[\n\r]\[^\n\r]*&i4 =" 1 "original" } }
! { dg-final { scan-tree-dump-times "#pragma omp atomic seq_cst\[\n\r]\[^\n\r]*&i5 =" 1 "original" } }
! { dg-final { scan-tree-dump-times "#pragma omp atomic seq_cst\[\n\r]\[^\n\r]*&i5 =" 1 "original" } }
! { dg-final { scan-tree-dump-times "#pragma omp atomic seq_cst\[\n\r]\[^\n\r]*&i5b =" 1 "original" } }
! { dg-final { scan-tree-dump-times "#pragma omp atomic seq_cst\[\n\r]\[^\n\r]*&i6 =" 1 "original" } }
! { dg-final { scan-tree-dump-times "#pragma omp atomic release\[\n\r]\[^\n\r]*&i7 =" 1 "original" } }
! { dg-final { scan-tree-dump-times "#pragma omp atomic release\[\n\r]\[^\n\r]*&i7b =" 1 "original" } }
! { dg-final { scan-tree-dump-times "#pragma omp atomic seq_cst\[\n\r]\[^\n\r]*&i8 =" 1 "original" } }