! Test forall lowering ! RUN: %flang_fc1 -emit-hlfir %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.func @_QPtest4_forall_construct() { ! CHECK: cf.br ^bb1 ! CHECK: ^bb1: // 2 preds: ^bb0, ^bb2 ! CHECK: hlfir.forall ! 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.func @_QPtest4_forall_construct2() { ! CHECK: cf.br ^bb1 ! CHECK: ^bb1: // 2 preds: ^bb0, ^bb2 ! CHECK: hlfir.forall ! 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