60 lines · plain
1! RUN: %flang -target x86_64-linux-gnu -fopenmp-simd %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-OPENMP-SIMD-FLAG --check-prefix=CHECK-NO-LD-ANY2! RUN: %flang -target x86_64-darwin -fopenmp-simd %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-OPENMP-SIMD-FLAG --check-prefix=CHECK-NO-LD-ANY3! RUN: %flang -target x86_64-freebsd -fopenmp-simd %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-OPENMP-SIMD-FLAG --check-prefix=CHECK-NO-LD-ANY4! RUN: %flang -target x86_64-windows-gnu -fopenmp-simd %s -o %t -### 2>&1 | FileCheck %s --check-prefix=CHECK-OPENMP-SIMD-FLAG --check-prefix=CHECK-NO-LD-ANY5 6! CHECK-OPENMP-SIMD-FLAG: "-fopenmp-simd"7! CHECK-NO-LD-ANY-NOT: "-l{{(omp|gomp|iomp5)}}"8 9! -fopenmp-simd enables openmp support only for simd constructs10! RUN: %flang_fc1 -fopenmp-simd %s -emit-fir -o - | FileCheck --check-prefix=CHECK-OMP-SIMD %s11! RUN: %flang_fc1 -fno-openmp-simd %s -emit-fir -o - | FileCheck --check-prefix=CHECK-NO-OMP-SIMD %s12! RUN: %flang_fc1 -fopenmp-simd -fno-openmp-simd %s -emit-fir -o - | FileCheck --check-prefix=CHECK-NO-OMP-SIMD %s13! RUN: %flang_fc1 -fno-openmp-simd -fopenmp-simd %s -emit-fir -o - | FileCheck --check-prefix=CHECK-OMP-SIMD %s14! -fopenmp-simd should have no effect if -fopenmp is already set15! RUN: %flang_fc1 -fopenmp %s -emit-fir -o - | FileCheck --check-prefix=CHECK-OMP %s16! RUN: %flang_fc1 -fopenmp -fopenmp-simd %s -emit-fir -o - | FileCheck --check-prefix=CHECK-OMP %s17! RUN: %flang_fc1 -fopenmp -fno-openmp-simd %s -emit-fir -o - | FileCheck --check-prefix=CHECK-OMP %s18 19subroutine main20 ! CHECK-OMP-SIMD-NOT: omp.parallel21 ! CHECK-OMP-SIMD-NOT: omp.wsloop22 ! CHECK-OMP-SIMD-NOT: omp.loop_nest23 ! CHECK-OMP-SIMD: fir.do_loop24 ! CHECK-NO-OMP-SIMD-NOT: omp.parallel25 ! CHECK-NO-OMP-SIMD-NOT: omp.wsloop26 ! CHECK-NO-OMP-SIMD-NOT: omp.loop_nest27 ! CHECK-NO-OMP-SIMD: fir.do_loop28 ! CHECK-OMP: omp.parallel29 ! CHECK-OMP: omp.wsloop30 ! CHECK-OMP: omp.loop_nest31 ! CHECK-OMP-NOT: fir.do_loop32 !$omp parallel do33 do i = 1, 1034 print *, "test"35 end do36 ! CHECK-NO-OMP-SIMD-NOT: omp.yield37 ! CHECK-NO-OMP-SIMD-NOT: omp.terminator38 ! CHECK-OMP-SIMD-NOT: omp.yield39 ! CHECK-OMP-SIMD-NOT: omp.terminator40 ! CHECK-OMP: omp.yield41 ! CHECK-OMP: omp.terminator42 !$omp end parallel do43 44 ! CHECK-OMP-SIMD: omp.simd45 ! CHECK-NO-OMP-SIMD-NOT: omp.simd46 ! CHECK-OMP: omp.simd47 !$omp simd48 ! CHECK-OMP-SIMD: omp.loop_nest49 ! CHECK-NO-OMP-SIMD-NOT: omp.loop_nest50 ! CHECK-NO-OMP-SIMD: fir.do_loop51 ! CHECK-OMP: omp.loop_nest52 ! CHECK-OMP-NOT: fir.do_loop53 do i = 1, 1054 print *, "test"55 ! CHECK-OMP-SIMD: omp.yield56 ! CHECK-NO-OMP-SIMD-NOT: omp.yield57 ! CHECK-OMP: omp.yield58 end do59end subroutine60