1! Check the flang-omp-report plugin for omp-declarative-directive.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 declarative directives 8 9! 2.8.2 declare-simd 10 11subroutine declare_simd_1(a, b) 12 real(8), intent(inout) :: a, b 13 !$omp declare simd(declare_simd_1) aligned(a) 14 a = 3.14 + b 15end subroutine declare_simd_1 16 17! 2.10.6 declare-target 18! 2.15.2 threadprivate 19 20module m2 21contains 22 subroutine foo 23 !$omp declare target 24 integer, parameter :: N=10000, M=1024 25 integer :: i 26 real :: Q(N, N), R(N,M), S(M,M) 27 end subroutine foo 28end module m2 29 30end 31 32! CHECK:--- 33! CHECK-NEXT:- file: '{{[^"]*}}omp-declarative-directive.f90' 34! CHECK-NEXT: line: 13 35! CHECK-NEXT: construct: declare simd 36! CHECK-NEXT: clauses: 37! CHECK-NEXT: - clause: aligned 38! CHECK-NEXT: details: a 39! CHECK-NEXT:- file: '{{[^"]*}}omp-declarative-directive.f90' 40! CHECK-NEXT: line: 23 41! CHECK-NEXT: construct: declare target 42! CHECK-NEXT: clauses: [] 43! CHECK-NEXT:... 44