| ! { 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" } } |