! RUN: %flang_fc1 -emit-llvm -o - %s | FileCheck %s ! CHECK-LABEL: unroll_and_jam_dir subroutine unroll_and_jam_dir integer :: a(10) !dir$ unroll_and_jam 4 ! CHECK: br i1 {{.*}}, label {{.*}}, label {{.*}} ! CHECK-NOT: !llvm.loop ! CHECK: br label {{.*}}, !llvm.loop ![[ANNOTATION:.*]] do i=1,10 a(i)=i end do end subroutine unroll_and_jam_dir ! CHECK-LABEL: unroll_and_jam_dir_0 subroutine unroll_and_jam_dir_0 integer :: a(10) !dir$ unroll_and_jam 0 ! CHECK: br i1 {{.*}}, label {{.*}}, label {{.*}} ! CHECK-NOT: !llvm.loop ! CHECK: br label {{.*}}, !llvm.loop ![[ANNOTATION_DISABLE:.*]] do i=1,10 a(i)=i end do end subroutine unroll_and_jam_dir_0 ! CHECK-LABEL: unroll_and_jam_dir_1 subroutine unroll_and_jam_dir_1 integer :: a(10) !dir$ unroll_and_jam 1 ! CHECK: br i1 {{.*}}, label {{.*}}, label {{.*}} ! CHECK-NOT: !llvm.loop ! CHECK: br label {{.*}}, !llvm.loop ![[ANNOTATION_DISABLE]] do i=1,10 a(i)=i end do end subroutine unroll_and_jam_dir_1 ! CHECK-LABEL: nounroll_and_jam_dir subroutine nounroll_and_jam_dir integer :: a(10) !dir$ nounroll_and_jam ! CHECK: br i1 {{.*}}, label {{.*}}, label {{.*}} ! CHECK-NOT: !llvm.loop ! CHECK: br label {{.*}}, !llvm.loop ![[ANNOTATION_DISABLE]] do i=1,10 a(i)=i end do end subroutine nounroll_and_jam_dir ! CHECK-LABEL: unroll_and_jam_dir_no_factor subroutine unroll_and_jam_dir_no_factor integer :: a(10) !dir$ unroll_and_jam ! CHECK: br i1 {{.*}}, label {{.*}}, label {{.*}} ! CHECK-NOT: !llvm.loop ! CHECK: br label {{.*}}, !llvm.loop ![[ANNOTATION_NO_FACTOR:.*]] do i=1,10 a(i)=i end do end subroutine unroll_and_jam_dir_no_factor ! CHECK: ![[ANNOTATION]] = distinct !{![[ANNOTATION]], ![[UNROLL_AND_JAM:.*]], ![[UNROLL_AND_JAM_COUNT:.*]]} ! CHECK: ![[UNROLL_AND_JAM]] = !{!"llvm.loop.unroll_and_jam.enable"} ! CHECK: ![[UNROLL_AND_JAM_COUNT]] = !{!"llvm.loop.unroll_and_jam.count", i32 4} ! CHECK: ![[ANNOTATION_DISABLE]] = distinct !{![[ANNOTATION_DISABLE]], ![[UNROLL_AND_JAM2:.*]]} ! CHECK: ![[UNROLL_AND_JAM2]] = !{!"llvm.loop.unroll_and_jam.disable"} ! CHECK: ![[ANNOTATION_NO_FACTOR]] = distinct !{![[ANNOTATION_NO_FACTOR]], ![[UNROLL_AND_JAM]]}