47 lines · plain
1! Test forall lowering2 3! RUN: bbc -emit-fir -hlfir=false %s -o - | FileCheck %s4 5!*** Test forall targeted by label6subroutine test4_forall_construct()7 integer :: a(2) = 18100 forall (i=1:2)9 a(i) = a(i) + 110 end forall11 if (a(1) > 3) goto 20012 goto 10013200 return14end subroutine test4_forall_construct15 16! CHECK-LABEL: func @_QPtest4_forall_construct17! CHECK: cf.br ^bb118! CHECK: ^bb1: // 2 preds: ^bb0, ^bb219! CHECK: %{{.*}} = fir.do_loop20! CHECK: cf.cond_br %{{.*}}, ^bb2, ^bb321! CHECK: ^bb2: // pred: ^bb122! CHECK: cf.br ^bb123! CHECK: ^bb3: // pred: ^bb124! CHECK: cf.br ^bb425! CHECK: ^bb4: // pred: ^bb326! CHECK: return27 28subroutine test4_forall_construct2()29 integer :: a(2) = 130100 forall (i=1:2) a(i) = a(i) + 131 if (a(1) > 3) goto 20032 goto 10033200 return34end subroutine test4_forall_construct235 36! CHECK-LABEL: func @_QPtest4_forall_construct237! CHECK: cf.br ^bb138! CHECK: ^bb1: // 2 preds: ^bb0, ^bb239! CHECK: %{{.*}} = fir.do_loop40! CHECK: cf.cond_br %{{.*}}, ^bb2, ^bb341! CHECK: ^bb2: // pred: ^bb142! CHECK: cf.br ^bb143! CHECK: ^bb3: // pred: ^bb144! CHECK: cf.br ^bb445! CHECK: ^bb4: // pred: ^bb346! CHECK: return47