! RUN: %flang_fc1 -emit-llvm -o - %s | FileCheck %s ! CHECK-LABEL: unroll_dir subroutine unroll_dir integer :: a(10) !dir$ unroll ! CHECK: br i1 {{.*}}, label {{.*}}, label {{.*}} ! CHECK-NOT: !llvm.loop ! CHECK: br label {{.*}}, !llvm.loop ![[UNROLL_ENABLE_FULL_ANNO:.*]] do i=1,10 a(i)=i end do end subroutine unroll_dir ! CHECK-LABEL: unroll_dir_0 subroutine unroll_dir_0 integer :: a(10) !dir$ unroll 0 ! CHECK: br i1 {{.*}}, label {{.*}}, label {{.*}} ! CHECK-NOT: !llvm.loop ! CHECK: br label {{.*}}, !llvm.loop ![[UNROLL_DISABLE_ANNO:.*]] do i=1,10 a(i)=i end do end subroutine unroll_dir_0 ! CHECK-LABEL: unroll_dir_1 subroutine unroll_dir_1 integer :: a(10) !dir$ unroll 1 ! CHECK: br i1 {{.*}}, label {{.*}}, label {{.*}} ! CHECK-NOT: !llvm.loop ! CHECK: br label {{.*}}, !llvm.loop ![[UNROLL_DISABLE_ANNO]] do i=1,10 a(i)=i end do end subroutine unroll_dir_1 ! CHECK-LABEL: unroll_dir_2 subroutine unroll_dir_2 integer :: a(10) !dir$ unroll 2 ! CHECK: br i1 {{.*}}, label {{.*}}, label {{.*}} ! CHECK-NOT: !llvm.loop ! CHECK: br label {{.*}}, !llvm.loop ![[UNROLL_ENABLE_COUNT_2:.*]] do i=1,10 a(i)=i end do end subroutine unroll_dir_2 ! CHECK: ![[UNROLL_ENABLE_FULL_ANNO]] = distinct !{![[UNROLL_ENABLE_FULL_ANNO]], ![[UNROLL_ENABLE:.*]], ![[UNROLL_FULL:.*]]} ! CHECK: ![[UNROLL_ENABLE:.*]] = !{!"llvm.loop.unroll.enable"} ! CHECK: ![[UNROLL_FULL:.*]] = !{!"llvm.loop.unroll.full"} ! CHECK: ![[UNROLL_DISABLE_ANNO]] = distinct !{![[UNROLL_DISABLE_ANNO]], ![[UNROLL_DISABLE:.*]]} ! CHECK: ![[UNROLL_DISABLE]] = !{!"llvm.loop.unroll.disable"} ! CHECK: ![[UNROLL_ENABLE_COUNT_2]] = distinct !{![[UNROLL_ENABLE_COUNT_2]], ![[UNROLL_ENABLE]], ![[UNROLL_COUNT_2:.*]]} ! CHECK: ![[UNROLL_COUNT_2]] = !{!"llvm.loop.unroll.count", i32 2}