97 lines · plain
1! RUN: %flang_fc1 -fdebug-dump-pft %s 2>&1 | FileCheck %s2 3! Note: PFT dump output is fairly stable, including node indexes and4! annotations, so all output is CHECKed.5 6 ! CHECK: 1 Program <anonymous>7 ! CHECK: 1 PrintStmt: print*8 print*9 10 ! CHECK: <<DoConstruct>> -> 811 ! CHECK: 2 NonLabelDoStmt -> 7: do i = 1, 512 ! CHECK: <<IfConstruct>> -> 713 ! CHECK: 3 ^IfStmt [negate] -> 7: if(i <= 1 .or. i >= 5) cycle14 ! CHECK: 6 ^PrintStmt: print*, i15 ! CHECK: 5 EndIfStmt16 ! CHECK: <<End IfConstruct>>17 ! CHECK: 7 EndDoStmt -> 2: end do18 ! CHECK: <<End DoConstruct>>19 do i = 1, 520 if (i <= 1 .or. i >= 5) cycle21 print*, i22 end do23 24 ! CHECK: 8 PrintStmt: print*25 print*26 27 ! CHECK: <<DoConstruct>> -> 1528 ! CHECK: 9 NonLabelDoStmt -> 14: do i = 1, 529 ! CHECK: <<IfConstruct>> -> 1430 ! CHECK: 10 ^IfStmt [negate] -> 14: if(i <= 1 .or. i >= 5) cycle31 ! CHECK: 13 ^PrintStmt: print*, i32 ! CHECK: 12 EndIfStmt33 ! CHECK: <<End IfConstruct>>34 ! CHECK: 14 EndDoStmt -> 9: 2 end do35 ! CHECK: <<End DoConstruct>>36 do i = 1, 537 if (i <= 1 .or. i >= 5) cycle38 print*, i392 end do40 41 ! CHECK: 15 PrintStmt: print*42 print*43 44 ! CHECK:<<DoConstruct!>> -> 3045 ! CHECK: 16 NonLabelDoStmt -> 29: outer: do i = 1, 346 ! CHECK: <<DoConstruct!>> -> 2947 ! CHECK: 17 ^NonLabelDoStmt -> 28: inner: do j = 1, 548 ! CHECK: <<IfConstruct!>> -> 2849 ! CHECK: 18 ^IfStmt [negate] -> 28: if(j <= 1 .or. j >= 5) cycle inner50 ! CHECK: <<IfConstruct!>> -> 2851 ! CHECK: 21 ^IfStmt [negate] -> 28: if(j == 3) goto 352 ! CHECK: <<IfConstruct!>> -> 2753 ! CHECK: 24 ^IfStmt -> 27: if(j == 4) cycle outer54 ! CHECK: 25 ^CycleStmt! -> 29: cycle outer55 ! CHECK: 26 EndIfStmt56 ! CHECK: <<End IfConstruct!>>57 ! CHECK: 27 ^PrintStmt: print*, j58 ! CHECK: 23 EndIfStmt59 ! CHECK: <<End IfConstruct!>>60 ! CHECK: 20 EndIfStmt61 ! CHECK: <<End IfConstruct!>>62 ! CHECK: 28 ^EndDoStmt -> 17: 3 end do inner63 ! CHECK: <<End DoConstruct!>>64 ! CHECK: 29 ^EndDoStmt -> 16: end do outer65 ! CHECK:<<End DoConstruct!>>66 outer: do i = 1, 367 inner: do j = 1, 568 if (j <= 1 .or. j >= 5) cycle inner69 if (j == 3) goto 370 if (j == 4) cycle outer71 print*, j72 3 end do inner73 end do outer74 75 ! CHECK: 30 ^PrintStmt: print*76 print*77 78 ! CHECK:<<DoConstruct>> -> 4079 ! CHECK: 31 NonLabelDoStmt -> 39: do i = 1, 580 ! CHECK: <<IfConstruct>> -> 3981 ! CHECK: 32 ^IfStmt [negate] -> 39: if(i == 3) goto 482 ! CHECK: <<IfConstruct>> -> 3983 ! CHECK: 35 ^IfStmt [negate] -> 39: if(i <= 1 .or. i >= 5) cycle84 ! CHECK: 38 ^PrintStmt: print*, i85 ! CHECK: 37 EndIfStmt86 ! CHECK: <<End IfConstruct>>87 ! CHECK: 34 EndIfStmt88 ! CHECK: <<End IfConstruct>>89 ! CHECK: 39 EndDoStmt -> 31: 4 end do90 ! CHECK:<<End DoConstruct>>91 do i = 1, 592 if (i == 3) goto 493 if (i <= 1 .or. i >= 5) cycle94 print*, i954 end do96end97