1! REQUIRES: plugins, examples, shell 2 3! RUN: %flang_fc1 -load %llvmshlibdir/flangOmpReport.so -plugin flang-omp-report -fopenmp %s -o - | FileCheck %s 4 5! Check OpenMP 2.13.6 atomic Construct 6 7 a = 1.0 8 !$omp parallel num_threads(4) shared(a) 9 !$omp atomic seq_cst, read 10 b = a 11 12 !$omp atomic seq_cst write 13 a = b 14 !$omp end atomic 15 16 !$omp atomic capture seq_cst 17 b = a 18 a = a + 1 19 !$omp end atomic 20 21 !$omp atomic 22 a = a + 1 23 !$omp end parallel 24end 25 26! CHECK:--- 27! CHECK-NEXT:- file: '{{[^"]*}}omp-atomic.f90' 28! CHECK-NEXT: line: 9 29! CHECK-NEXT: construct: atomic-read 30! CHECK-NEXT: clauses: 31! CHECK-NEXT: - clause: seq_cst 32! CHECK-NEXT: details: '' 33! CHECK-NEXT:- file: '{{[^"]*}}omp-atomic.f90' 34! CHECK-NEXT: line: 12 35! CHECK-NEXT: construct: atomic-write 36! CHECK-NEXT: clauses: 37! CHECK-NEXT: - clause: seq_cst 38! CHECK-NEXT: details: '' 39! CHECK-NEXT:- file: '{{[^"]*}}omp-atomic.f90' 40! CHECK-NEXT: line: 16 41! CHECK-NEXT: construct: atomic-capture 42! CHECK-NEXT: clauses: 43! CHECK-NEXT: - clause: seq_cst 44! CHECK-NEXT: details: '' 45! CHECK-NEXT:- file: '{{[^"]*}}omp-atomic.f90' 46! CHECK-NEXT: line: 21 47! CHECK-NEXT: construct: atomic-atomic 48! CHECK-NEXT: clauses: [] 49! CHECK-NEXT:- file: '{{[^"]*}}omp-atomic.f90' 50! CHECK-NEXT: line: 8 51! CHECK-NEXT: construct: parallel 52! CHECK-NEXT: clauses: 53! CHECK-NEXT: - clause: num_threads 54! CHECK-NEXT: details: '4' 55! CHECK-NEXT: - clause: shared 56! CHECK-NEXT: details: a 57! CHECK-NEXT:... 58