brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · bbbf897 Raw
87 lines · plain
1! RUN: bbc -fopenacc -emit-hlfir %s -o - | FileCheck %s2 3subroutine test_unstructured1(a, b, c)4  integer :: i, j, k5  real :: a(:,:,:), b(:,:,:), c(:,:,:)6 7  !$acc data copy(a, b, c)8 9  !$acc kernels10  a(:,:,:) = 0.011  !$acc end kernels12 13  !$acc kernels14  do i = 1, 1015    do j = 1, 1016      do k = 1, 1017      end do18    end do19  end do20  !$acc end kernels21 22  do i = 1, 1023    do j = 1, 1024      do k = 1, 1025      end do26    end do27 28    if (a(1,2,3) > 10) stop 'just to be unstructured'29  end do30 31  !$acc end data32 33end subroutine34 35! CHECK-LABEL: func.func @_QPtest_unstructured136! CHECK: acc.data37! CHECK: acc.kernels38! CHECK: acc.kernels39! CHECK: fir.call @_FortranAStopStatementText40 41 42subroutine test_unstructured2(a, b, c)43  integer :: i, j, k44  real :: a(:,:,:), b(:,:,:), c(:,:,:)45 46  !$acc parallel loop47  do i = 1, 1048    do j = 1, 1049      do k = 1, 1050        if (a(1,2,3) > 10) stop 'just to be unstructured'51      end do52    end do53  end do54 55! CHECK-LABEL: func.func @_QPtest_unstructured256! CHECK: acc.parallel57! CHECK: acc.loop combined(parallel) private(%{{.*}} : !fir.ref<i32>) {58! CHECK: fir.call @_FortranAStopStatementText59! CHECK: acc.yield60! CHECK: acc.yield61! CHECK: } attributes {independent = [#acc.device_type<none>], unstructured}62! CHECK: acc.yield63 64end subroutine65 66subroutine test_unstructured3(a, b, c)67  integer :: i, j, k68  real :: a(:,:,:), b(:,:,:), c(:,:,:)69 70  !$acc parallel71  do i = 1, 1072    do j = 1, 1073      do k = 1, 1074        if (a(1,2,3) > 10) stop 'just to be unstructured'75      end do76    end do77  end do78  !$acc end parallel79 80! CHECK-LABEL: func.func @_QPtest_unstructured381! CHECK: acc.parallel82! CHECK: fir.call @_FortranAStopStatementText83! CHECK: acc.yield84! CHECK: acc.yield85 86end subroutine87