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)