69 lines · plain
1! RUN: %flang_fc1 -emit-llvm -o - %s | FileCheck %s2 3! CHECK-LABEL: unroll_and_jam_dir4subroutine unroll_and_jam_dir5 integer :: a(10)6 !dir$ unroll_and_jam 47 ! CHECK: br i1 {{.*}}, label {{.*}}, label {{.*}}8 ! CHECK-NOT: !llvm.loop9 ! CHECK: br label {{.*}}, !llvm.loop ![[ANNOTATION:.*]]10 do i=1,1011 a(i)=i12 end do13end subroutine unroll_and_jam_dir14 15! CHECK-LABEL: unroll_and_jam_dir_016subroutine unroll_and_jam_dir_017 integer :: a(10)18 !dir$ unroll_and_jam 019 ! CHECK: br i1 {{.*}}, label {{.*}}, label {{.*}}20 ! CHECK-NOT: !llvm.loop21 ! CHECK: br label {{.*}}, !llvm.loop ![[ANNOTATION_DISABLE:.*]]22 do i=1,1023 a(i)=i24 end do25end subroutine unroll_and_jam_dir_026 27! CHECK-LABEL: unroll_and_jam_dir_128subroutine unroll_and_jam_dir_129 integer :: a(10)30 !dir$ unroll_and_jam 131 ! CHECK: br i1 {{.*}}, label {{.*}}, label {{.*}}32 ! CHECK-NOT: !llvm.loop33 ! CHECK: br label {{.*}}, !llvm.loop ![[ANNOTATION_DISABLE]]34 do i=1,1035 a(i)=i36 end do37end subroutine unroll_and_jam_dir_138 39! CHECK-LABEL: nounroll_and_jam_dir40subroutine nounroll_and_jam_dir41 integer :: a(10)42 !dir$ nounroll_and_jam43 ! CHECK: br i1 {{.*}}, label {{.*}}, label {{.*}}44 ! CHECK-NOT: !llvm.loop45 ! CHECK: br label {{.*}}, !llvm.loop ![[ANNOTATION_DISABLE]]46 do i=1,1047 a(i)=i48 end do49end subroutine nounroll_and_jam_dir50 51! CHECK-LABEL: unroll_and_jam_dir_no_factor52subroutine unroll_and_jam_dir_no_factor53 integer :: a(10)54 !dir$ unroll_and_jam55 ! CHECK: br i1 {{.*}}, label {{.*}}, label {{.*}}56 ! CHECK-NOT: !llvm.loop57 ! CHECK: br label {{.*}}, !llvm.loop ![[ANNOTATION_NO_FACTOR:.*]]58 do i=1,1059 a(i)=i60 end do61end subroutine unroll_and_jam_dir_no_factor62 63! CHECK: ![[ANNOTATION]] = distinct !{![[ANNOTATION]], ![[UNROLL_AND_JAM:.*]], ![[UNROLL_AND_JAM_COUNT:.*]]}64! CHECK: ![[UNROLL_AND_JAM]] = !{!"llvm.loop.unroll_and_jam.enable"}65! CHECK: ![[UNROLL_AND_JAM_COUNT]] = !{!"llvm.loop.unroll_and_jam.count", i32 4}66! CHECK: ![[ANNOTATION_DISABLE]] = distinct !{![[ANNOTATION_DISABLE]], ![[UNROLL_AND_JAM2:.*]]}67! CHECK: ![[UNROLL_AND_JAM2]] = !{!"llvm.loop.unroll_and_jam.disable"}68! CHECK: ![[ANNOTATION_NO_FACTOR]] = distinct !{![[ANNOTATION_NO_FACTOR]], ![[UNROLL_AND_JAM]]}69