89 lines · plain
1! RUN: %flang_fc1 -fopenacc -fdebug-unparse %s | FileCheck %s2 3! Test unparse does not crash with OpenACC directives.4 5! Test bug 476596program bug476597 integer :: i, j8 label1: do i = 1, 109 !$acc parallel loop10 do j = 1, 1011 if (j == 2) then12 stop 113 end if14 end do15 end do label116end program17 18!CHECK-LABEL: PROGRAM BUG4765919!CHECK: !$ACC PARALLEL LOOP20 21 22subroutine acc_loop()23 integer :: i, j24 real :: a(10)25 integer :: gangNum, gangDim, gangStatic26 27!CHECK-LABEL: SUBROUTINE acc_loop28 29 !$acc loop collapse(force: 2)30 do i = 1, 1031 do j = 1, 1032 end do33 end do34!CHECK: !$ACC LOOP COLLAPSE(FORCE:2_4)35 36 !$acc loop gang37 do i = 1, 1038 a(i) = i39 end do40! CHECK: !$ACC LOOP GANG41 42 !$acc loop gang(gangNum)43 do i = 1, 1044 a(i) = i45 end do46! CHECK: !$ACC LOOP GANG(NUM:gangnum)47 48 !$acc loop gang(num: gangNum)49 do i = 1, 1050 a(i) = i51 end do52! CHECK: !$ACC LOOP GANG(NUM:gangnum)53 54 !$acc loop gang(dim: gangDim)55 do i = 1, 1056 a(i) = i57 end do58! CHECK: !$ACC LOOP GANG(DIM:gangdim)59 60 !$acc loop gang(static:gangStatic)61 do i = 1, 1062 a(i) = i63 end do64! CHECK: !$ACC LOOP GANG(STATIC:gangstatic)65 66 !$acc loop gang(static:*)67 do i = 1, 1068 a(i) = i69 end do70! CHECK: !$ACC LOOP GANG(STATIC:*)71 72 !$acc loop gang(static:gangStatic, dim: gangDim)73 do i = 1, 1074 a(i) = i75 end do76! CHECK: !$ACC LOOP GANG(STATIC:gangstatic,DIM:gangdim)77 78end subroutine79 80subroutine routine1()81 !$acc routine bind("routine1_")82! CHECK: !$ACC ROUTINE BIND("routine1_")83end subroutine84 85subroutine routine2()86 !$acc routine(routine2) bind(routine2)87! CHECK: !$ACC ROUTINE(routine2) BIND(routine2)88end subroutine89