brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · ebdc0de Raw
43 lines · plain
1! RUN: bbc -emit-hlfir -fcuda %s -o - | FileCheck %s2 3! Check if do concurrent works inside cuf kernel directive4 5subroutine doconc16  integer :: i, n7  integer, managed :: a(3)8  a(:) = -19  n = 310  n = n - 111  !$cuf kernel do12  do concurrent(i=1:n)13    a(i) = 114  end do15end16 17! CHECK: func.func @_QPdoconc1() {18! CHECK: %[[DECL:.*]]:2 = hlfir.declare %{{.*}} {uniq_name = "_QFdoconc1Ei"} : (!fir.ref<index>) -> (!fir.ref<index>, !fir.ref<index>)19! CHECK: cuf.kernel<<<*, *>>> (%arg0 : index)20! CHECK: fir.store %arg0 to %[[DECL]]#0 : !fir.ref<index>21! CHECK: %{{.*}} = fir.load %[[DECL]]#0 : !fir.ref<index>22 23subroutine doconc224  integer :: i, j, m, n25  integer, managed :: a(2, 4)26  m = 227  n = 428  a(:,:) = -129  !$cuf kernel do30  do concurrent(i=1:m,j=1:n)31    a(i,j) = i+j32  end do33end34 35! CHECK: func.func @_QPdoconc2() {36! CHECK: %[[DECLI:.*]]:2 = hlfir.declare %{{.*}} {uniq_name = "_QFdoconc2Ei"} : (!fir.ref<index>) -> (!fir.ref<index>, !fir.ref<index>)37! CHECK: %[[DECLJ:.*]]:2 = hlfir.declare %{{.*}} {uniq_name = "_QFdoconc2Ej"} : (!fir.ref<index>) -> (!fir.ref<index>, !fir.ref<index>)38! CHECK: cuf.kernel<<<*, *>>> (%arg0 : index, %arg1 : index) = (%{{.*}}, %{{.*}} : index, index) to (%{{.*}}, %{{.*}} : index, index)  step (%{{.*}}, %{{.*}} : index, index) {39! CHECK: fir.store %arg0 to %[[DECLI]]#0 : !fir.ref<index>40! CHECK: fir.store %arg1 to %[[DECLJ]]#0 : !fir.ref<index>41! CHECK: %{{.*}} = fir.load %[[DECLI]]#0 : !fir.ref<index>42! CHECK: %{{.*}} = fir.load %[[DECLJ]]#0 : !fir.ref<index>43