! RUN: %flang_fc1 -emit-hlfir %s -o - | FileCheck %s ! CHECK-LABEL: func.func @_QPall_test( ! CHECK-SAME: %[[arg0:.*]]: !fir.box>> {{.*}}) -> !fir.logical<4> logical function all_test(mask) logical :: mask(:) ! CHECK: %[[mask_decl:.*]]:2 = hlfir.declare %[[arg0]] {{.*}} ! CHECK: %[[res:.*]] = hlfir.all %[[mask_decl]]#0 : (!fir.box>>) -> !fir.logical<4> ! CHECK: hlfir.assign %[[res]] to %{{.*}} : !fir.logical<4>, !fir.ref> all_test = all(mask) end function all_test ! CHECK-LABEL: func.func @_QPall_test2( ! CHECK-SAME: %[[arg0:.*]]: !fir.box>> {{.*}}, %[[arg1:.*]]: !fir.ref {{.*}}, %[[arg2:.*]]: !fir.box>> {{.*}}) subroutine all_test2(mask, d, rslt) logical :: mask(:,:) integer :: d logical :: rslt(:) ! CHECK: %[[d_decl:.*]]:2 = hlfir.declare %[[arg1]] {{.*}} ! CHECK: %[[mask_decl:.*]]:2 = hlfir.declare %[[arg0]] {{.*}} ! CHECK: %[[rslt_decl:.*]]:2 = hlfir.declare %[[arg2]] {{.*}} ! CHECK: %[[d_val:.*]] = fir.load %[[d_decl]]#0 : !fir.ref ! CHECK: %[[res:.*]] = hlfir.all %[[mask_decl]]#0 dim %[[d_val]] : (!fir.box>>, i32) -> !hlfir.expr> ! CHECK: hlfir.assign %[[res]] to %[[rslt_decl]]#0 : !hlfir.expr>, !fir.box>> ! CHECK: hlfir.destroy %[[res]] : !hlfir.expr> rslt = all(mask, d) end subroutine