Diagnostic 15042: pragma supersedes previous setting

Cause:

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:


Examples:

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

Resolution:

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

Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione