1! This test checks lowering of OpenACC init directive. 2 3! RUN: bbc -fopenacc -emit-hlfir %s -o - | FileCheck %s 4 5subroutine acc_init 6 implicit none 7 logical :: ifCondition = .TRUE. 8 integer :: ifInt = 1 9 10 !$acc init 11!CHECK: acc.init{{ *}}{{$}} 12 13 !$acc init if(.true.) 14!CHECK: [[IF1:%.*]] = arith.constant true 15!CHECK: acc.init if([[IF1]]){{$}} 16 17 !$acc init if(ifCondition) 18!CHECK: [[IFCOND:%.*]] = fir.load %{{.*}} : !fir.ref<!fir.logical<4>> 19!CHECK: [[IF2:%.*]] = fir.convert [[IFCOND]] : (!fir.logical<4>) -> i1 20!CHECK: acc.init if([[IF2]]){{$}} 21 22 !$acc init device_num(1) 23!CHECK: [[DEVNUM:%.*]] = arith.constant 1 : i32 24!CHECK: acc.init device_num([[DEVNUM]] : i32){{$}} 25 26 !$acc init device_num(1) device_type(host, multicore) 27!CHECK: [[DEVNUM:%.*]] = arith.constant 1 : i32 28!CHECK: acc.init device_num([[DEVNUM]] : i32) attributes {device_types = [#acc.device_type<host>, #acc.device_type<multicore>]} 29 30 !$acc init if(ifInt) 31!CHECK: %[[IFINT:.*]] = fir.load %{{.*}} : !fir.ref<i32> 32!CHECK: %[[CONV:.*]] = fir.convert %[[IFINT]] : (i32) -> i1 33!CHECK: acc.init if(%[[CONV]]) 34 35 !$acc init device_type(nvidia) 36!CHECK: acc.init attributes {device_types = [#acc.device_type<nvidia>]} 37 38end subroutine acc_init 39