Diagnostic 15042: pragma supersedes previous setting


This diagnostics message comes when the parameters of the directive are contradictory.  

In the example below, the directive !dir$ loop count has two clauses, avg() and max(). Notice the contradiction in these two clauses: the max() parameter is lesser than the avg() clause value:


subroutine f15042( A, n )
implicit none
real :: A(n)
integer :: n, i
!dir$ loop count avg(30), max(10)
do i=1,n
  A(i) = real(i)
end do
end subroutine f15042

$ ifort -c -vec-report6 f15042.f90
f15042.f90(7): (col. 1) remark: pragma supersedes previous setting
f15042.f90(8): (col. 3) remark: vectorization support: reference a has unaligned access
f15042.f90(8): (col. 3) remark: vectorization support: unaligned access used inside loop body
f15042.f90(7): (col. 1) remark: LOOP WAS VECTORIZED


Make sure the max() clause is always greater than avg() clause value.  Notice that the loop does still vectorize, it simply ignores the avg(30) and uses max(10)

Back to the list of vectorization diagnostics for Intel Fortran

For more complete information about compiler optimizations, see our Optimization Notice.