llvm-project/flang/test/Lower/ivdep-array.f90
jeanPerier c2d510f5bd
[flang] fix DIR IVDEP for array assignments inside loops (#177940)
The access attribute set on hlfir.assign for arrays was lost in
InlineHLFIRAssign.cpp. This patch propagates it to the creates loads and
stores.
2026-01-27 10:18:41 +01:00

21 lines
599 B
Fortran

! RUN: %flang_fc1 -emit-fir -O2 %s -o - | FileCheck %s
! CHECK: #[[ANNOTATION:.*]] = #llvm.loop_annotation<vectorize = #{{.*}}, parallelAccesses = #[[GROUP:.*]]>
subroutine array_assignment_in_loop(a, b)
real :: a(100,100), b(100,100)
!dir$ ivdep
! CHECK: fir.do_loop
! CHECK-SAME: loopAnnotation = #[[ANNOTATION]]
do i=1,100
! CHECK: fir.do_loop
! CHECK: fir.load
! CHECK-SAME: accessGroups = [#[[GROUP]]]
! CHECK: fir.store
! CHECK-SAME: accessGroups = [#[[GROUP]]]
a(i, :) = b(i, :)
! CHECK: }
! CHECK: }
! CHECK: return
end do
end subroutine