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 declarative directives 638c42d42SStuart Ellis 738c42d42SStuart Ellis! 2.8.2 declare-simd 838c42d42SStuart Ellis 938c42d42SStuart Ellissubroutine declare_simd_1(a, b) 10*e73ec1a7SThirumalai Shaktivel real(8), intent(inout), allocatable :: a, b 1138c42d42SStuart Ellis !$omp declare simd(declare_simd_1) aligned(a) 1238c42d42SStuart Ellis a = 3.14 + b 1338c42d42SStuart Ellisend subroutine declare_simd_1 1438c42d42SStuart Ellis 1538c42d42SStuart Ellis! 2.10.6 declare-target 1638c42d42SStuart Ellis! 2.15.2 threadprivate 1738c42d42SStuart Ellis 1838c42d42SStuart Ellismodule m2 1938c42d42SStuart Elliscontains 2038c42d42SStuart Ellis subroutine foo 2138c42d42SStuart Ellis !$omp declare target 2238c42d42SStuart Ellis integer, parameter :: N=10000, M=1024 2338c42d42SStuart Ellis integer :: i 2438c42d42SStuart Ellis real :: Q(N, N), R(N,M), S(M,M) 2538c42d42SStuart Ellis end subroutine foo 2638c42d42SStuart Ellisend module m2 2738c42d42SStuart Ellis 2838c42d42SStuart Ellisend 2938c42d42SStuart Ellis 3038c42d42SStuart Ellis! CHECK:--- 3138c42d42SStuart Ellis! CHECK-NEXT:- file: '{{[^"]*}}omp-declarative-directive.f90' 320a95abb7SJosh Mottley! CHECK-NEXT: line: 11 3338c42d42SStuart Ellis! CHECK-NEXT: construct: declare simd 3438c42d42SStuart Ellis! CHECK-NEXT: clauses: 3538c42d42SStuart Ellis! CHECK-NEXT: - clause: aligned 3638c42d42SStuart Ellis! CHECK-NEXT: details: a 3738c42d42SStuart Ellis! CHECK-NEXT:- file: '{{[^"]*}}omp-declarative-directive.f90' 380a95abb7SJosh Mottley! CHECK-NEXT: line: 21 3938c42d42SStuart Ellis! CHECK-NEXT: construct: declare target 4038c42d42SStuart Ellis! CHECK-NEXT: clauses: [] 4138c42d42SStuart Ellis! CHECK-NEXT:... 42