! 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