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