xref: /llvm-project/flang/test/Lower/unroll.f90 (revision e811cb00e533e9737db689e35ee6cb0d5af536cc)
1*e811cb00SJean-Didier PAILLEUX! RUN: %flang_fc1 -emit-hlfir -o - %s | FileCheck %s
2*e811cb00SJean-Didier PAILLEUX
3*e811cb00SJean-Didier PAILLEUX! CHECK: #loop_unroll = #llvm.loop_unroll<disable = false, full = true>
4*e811cb00SJean-Didier PAILLEUX! CHECK: #loop_annotation = #llvm.loop_annotation<unroll = #loop_unroll>
5*e811cb00SJean-Didier PAILLEUX
6*e811cb00SJean-Didier PAILLEUX! CHECK-LABEL: unroll_dir
7*e811cb00SJean-Didier PAILLEUXsubroutine unroll_dir
8*e811cb00SJean-Didier PAILLEUX  integer :: a(10)
9*e811cb00SJean-Didier PAILLEUX  !dir$ unroll
10*e811cb00SJean-Didier PAILLEUX  !CHECK: fir.do_loop {{.*}} attributes {loopAnnotation = #loop_annotation}
11*e811cb00SJean-Didier PAILLEUX  do i=1,10
12*e811cb00SJean-Didier PAILLEUX     a(i)=i
13*e811cb00SJean-Didier PAILLEUX  end do
14*e811cb00SJean-Didier PAILLEUXend subroutine unroll_dir
15*e811cb00SJean-Didier PAILLEUX
16*e811cb00SJean-Didier PAILLEUX
17*e811cb00SJean-Didier PAILLEUX! CHECK-LABEL: intermediate_directive
18*e811cb00SJean-Didier PAILLEUXsubroutine intermediate_directive
19*e811cb00SJean-Didier PAILLEUX  integer :: a(10)
20*e811cb00SJean-Didier PAILLEUX  !dir$ unroll
21*e811cb00SJean-Didier PAILLEUX  !dir$ unknown
22*e811cb00SJean-Didier PAILLEUX  !CHECK: fir.do_loop {{.*}} attributes {loopAnnotation = #loop_annotation}
23*e811cb00SJean-Didier PAILLEUX  do i=1,10
24*e811cb00SJean-Didier PAILLEUX     a(i)=i
25*e811cb00SJean-Didier PAILLEUX  end do
26*e811cb00SJean-Didier PAILLEUXend subroutine intermediate_directive
27*e811cb00SJean-Didier PAILLEUX
28