brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 69270d7 Raw
89 lines · plain
1!RUN: bbc -emit-hlfir -fopenacc -fopenmp -o - %s | FileCheck %s2 3!https://github.com/llvm/llvm-project/issues/915264 5!CHECK-LABEL: func.func @_QPsimple16!CHECK:   cf.cond_br %{{[0-9]+}}, ^bb[[THEN:[0-9]+]], ^bb[[ELSE:[0-9]+]]7!CHECK: ^bb[[THEN]]:8!CHECK:   omp.parallel9!CHECK:   cf.br ^bb[[ENDIF:[0-9]+]]10!CHECK: ^bb[[ELSE]]:11!CHECK:   fir.call @_FortranAStopStatement12!CHECK:   fir.unreachable13!CHECK: ^bb[[ENDIF]]:14!CHECK:   return15 16subroutine simple1(y)17  implicit none18  logical, intent(in) :: y19  integer :: i20  if (y) then21    !$omp parallel22    i = 123    !$omp end parallel24  else25    stop 126  end if27end subroutine28 29!CHECK-LABEL: func.func @_QPsimple230!CHECK:   cf.cond_br %{{[0-9]+}}, ^bb[[THEN:[0-9]+]], ^bb[[ELSE:[0-9]+]]31!CHECK: ^bb[[THEN]]:32!CHECK:   omp.parallel33!CHECK:   cf.br ^bb[[ENDIF:[0-9]+]]34!CHECK: ^bb[[ELSE]]:35!CHECK:   fir.call @_FortranAStopStatement36!CHECK:   fir.unreachable37!CHECK: ^bb[[ENDIF]]:38!CHECK:   fir.call @_FortranAioOutputReal6439!CHECK:   return40subroutine simple2(x, yn)41  implicit none42  logical, intent(in) :: yn43  integer, intent(in) :: x44  integer :: i45  real(8) :: E46  E = 0d047 48  if (yn) then49     !$omp parallel do private(i) reduction(+:E)50     do i = 1, x51        E = E + i52     end do53     !$omp end parallel do54  else55     stop 156  end if57  print *, E58end subroutine59 60!CHECK-LABEL: func.func @_QPacccase61!CHECK: fir.select_case %{{[0-9]+}} : i32 [{{.*}}, ^bb[[CASE1:[0-9]+]], {{.*}}, ^bb[[CASE2:[0-9]+]], {{.*}}, ^bb[[CASE3:[0-9]+]]]62!CHECK: ^bb[[CASE1]]:63!CHECK:   acc.serial64!CHECK:   cf.br ^bb[[EXIT:[0-9]+]]65!CHECK: ^bb[[CASE2]]:66!CHECK:   fir.call @_FortranAioOutputAscii67!CHECK:   cf.br ^bb[[EXIT]]68!CHECK: ^bb[[CASE3]]:69!CHECK:   fir.call @_FortranAioOutputAscii70!CHECK:   cf.br ^bb[[EXIT]]71!CHECK: ^bb[[EXIT]]:72!CHECK:   return73subroutine acccase(var)74  integer :: var75  integer :: res(10)76  select case (var)77    case (1)78      print *, "case 1"79      !$acc serial80      res(1) = 181      !$acc end serial82    case (2)83      print *, "case 2"84    case default85      print *, "case default"86  end select87end subroutine88 89