15c52753dSAndrzej Warzynski! REQUIRES: plugins, examples, shell 238c42d42SStuart Ellis 338c42d42SStuart Ellis! RUN: %flang_fc1 -load %llvmshlibdir/flangOmpReport.so -plugin flang-omp-report -fopenmp %s -o - | FileCheck %s 438c42d42SStuart Ellis 538c42d42SStuart Ellis! Check OpenMP 2.13.6 atomic Construct 638c42d42SStuart Ellis 738c42d42SStuart Ellis a = 1.0 838c42d42SStuart Ellis !$omp parallel num_threads(4) shared(a) 938c42d42SStuart Ellis !$omp atomic seq_cst, read 1038c42d42SStuart Ellis b = a 1138c42d42SStuart Ellis 1238c42d42SStuart Ellis !$omp atomic seq_cst write 1338c42d42SStuart Ellis a = b 1438c42d42SStuart Ellis !$omp end atomic 1538c42d42SStuart Ellis 1638c42d42SStuart Ellis !$omp atomic capture seq_cst 1738c42d42SStuart Ellis b = a 1838c42d42SStuart Ellis a = a + 1 1938c42d42SStuart Ellis !$omp end atomic 2038c42d42SStuart Ellis 2138c42d42SStuart Ellis !$omp atomic 2238c42d42SStuart Ellis a = a + 1 2338c42d42SStuart Ellis !$omp end parallel 2438c42d42SStuart Ellisend 2538c42d42SStuart Ellis 2638c42d42SStuart Ellis! CHECK:--- 2738c42d42SStuart Ellis! CHECK-NEXT:- file: '{{[^"]*}}omp-atomic.f90' 28*0a95abb7SJosh Mottley! CHECK-NEXT: line: 9 2938c42d42SStuart Ellis! CHECK-NEXT: construct: atomic-read 3038c42d42SStuart Ellis! CHECK-NEXT: clauses: 3138c42d42SStuart Ellis! CHECK-NEXT: - clause: seq_cst 3238c42d42SStuart Ellis! CHECK-NEXT: details: '' 3338c42d42SStuart Ellis! CHECK-NEXT:- file: '{{[^"]*}}omp-atomic.f90' 34*0a95abb7SJosh Mottley! CHECK-NEXT: line: 12 3538c42d42SStuart Ellis! CHECK-NEXT: construct: atomic-write 3638c42d42SStuart Ellis! CHECK-NEXT: clauses: 3738c42d42SStuart Ellis! CHECK-NEXT: - clause: seq_cst 3838c42d42SStuart Ellis! CHECK-NEXT: details: '' 3938c42d42SStuart Ellis! CHECK-NEXT:- file: '{{[^"]*}}omp-atomic.f90' 40*0a95abb7SJosh Mottley! CHECK-NEXT: line: 16 4138c42d42SStuart Ellis! CHECK-NEXT: construct: atomic-capture 4238c42d42SStuart Ellis! CHECK-NEXT: clauses: 4338c42d42SStuart Ellis! CHECK-NEXT: - clause: seq_cst 4438c42d42SStuart Ellis! CHECK-NEXT: details: '' 4538c42d42SStuart Ellis! CHECK-NEXT:- file: '{{[^"]*}}omp-atomic.f90' 46*0a95abb7SJosh Mottley! CHECK-NEXT: line: 21 4738c42d42SStuart Ellis! CHECK-NEXT: construct: atomic-atomic 4838c42d42SStuart Ellis! CHECK-NEXT: clauses: [] 4938c42d42SStuart Ellis! CHECK-NEXT:- file: '{{[^"]*}}omp-atomic.f90' 50*0a95abb7SJosh Mottley! CHECK-NEXT: line: 8 5138c42d42SStuart Ellis! CHECK-NEXT: construct: parallel 5238c42d42SStuart Ellis! CHECK-NEXT: clauses: 5338c42d42SStuart Ellis! CHECK-NEXT: - clause: num_threads 5438c42d42SStuart Ellis! CHECK-NEXT: details: '4' 5538c42d42SStuart Ellis! CHECK-NEXT: - clause: shared 5638c42d42SStuart Ellis! CHECK-NEXT: details: a 5738c42d42SStuart Ellis! CHECK-NEXT:... 58