blob: 8134a2f7f271052d93d713f91aed3b62345edd4e [file] [log] [blame]
! Test forall lowering
! RUN: bbc -emit-fir -hlfir=false %s -o - | FileCheck %s
!*** Test forall targeted by label
subroutine test4_forall_construct()
integer :: a(2) = 1
100 forall (i=1:2)
a(i) = a(i) + 1
end forall
if (a(1) > 3) goto 200
goto 100
200 return
end subroutine test4_forall_construct
! CHECK-LABEL: func @_QPtest4_forall_construct
! CHECK: cf.br ^bb1
! CHECK: ^bb1: // 2 preds: ^bb0, ^bb2
! CHECK: %{{.*}} = fir.do_loop
! CHECK: cf.cond_br %{{.*}}, ^bb2, ^bb3
! CHECK: ^bb2: // pred: ^bb1
! CHECK: cf.br ^bb1
! CHECK: ^bb3: // pred: ^bb1
! CHECK: cf.br ^bb4
! CHECK: ^bb4: // pred: ^bb3
! CHECK: return
subroutine test4_forall_construct2()
integer :: a(2) = 1
100 forall (i=1:2) a(i) = a(i) + 1
if (a(1) > 3) goto 200
goto 100
200 return
end subroutine test4_forall_construct2
! CHECK-LABEL: func @_QPtest4_forall_construct2
! CHECK: cf.br ^bb1
! CHECK: ^bb1: // 2 preds: ^bb0, ^bb2
! CHECK: %{{.*}} = fir.do_loop
! CHECK: cf.cond_br %{{.*}}, ^bb2, ^bb3
! CHECK: ^bb2: // pred: ^bb1
! CHECK: cf.br ^bb1
! CHECK: ^bb3: // pred: ^bb1
! CHECK: cf.br ^bb4
! CHECK: ^bb4: // pred: ^bb3
! CHECK: return