1! { dg-additional-options "-fdump-tree-original" } 2 3module relaxed 4 !$omp requires atomic_default_mem_order(relaxed) 5end module relaxed 6 7module seq 8 !$omp requires atomic_default_mem_order(seq_cst) 9end module seq 10 11module acq 12 !$omp requires atomic_default_mem_order(acq_rel) 13end module acq 14 15subroutine sub1 16 !$omp atomic ! <= relaxed 17 i1 = i1 + 5 18end subroutine 19 20subroutine sub2 21 !$omp atomic seq_cst 22 i2 = i2 + 5 23end subroutine 24 25subroutine sub3 26 use relaxed 27 !$omp atomic 28 i3 = i3 + 5 29end subroutine 30 31subroutine sub4 32 use relaxed 33 !$omp atomic seq_cst 34 i4 = i4 + 5 35end subroutine 36 37subroutine sub5 38 use seq 39 !$omp atomic 40 i5 = i5 + 5 41contains 42 subroutine bar 43 block 44 !$omp atomic 45 i5b = i5b + 5 46 end block 47 end 48end subroutine 49 50subroutine sub6 51 use seq 52 !$omp atomic seq_cst 53 i6 = i6 + 5 54end subroutine 55 56subroutine sub7 57 use acq 58 !$omp atomic 59 i7 = i7 + 5 60contains 61 subroutine foobar 62 block 63 !$omp atomic 64 i7b = i7b + 5 65 end block 66 end 67end subroutine 68 69subroutine sub8 70 use acq 71 !$omp atomic seq_cst 72 i8 = i8 + 5 73end subroutine 74 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" } } 86