Diagnostic 15340: Pragma Supersedes Previous Setting

ID 732956
Updated 6/29/2015
Version Latest



Product Version: Intel® Fortran Compiler 15.0 and a later version 


This diagnostic message occurs when the parameters of the directive are contradictory.  The vectorization report generated using Intel® Fortran Compiler's optimization and vectorization report options states that pragma supersedes previous setting:

Windows* OS:  /O2  /Qopt-report:2  /Qopt-report-phase:vec    

Linux OS or OS X:  -O2 -qopt-report2  -qopt-report-phase=vec


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. The following example will generate this remark in optimization report:

subroutine f15340( 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 f15340

 ifort -c /O2 /Qopt-report:2 /Qopt-report-phase:vec /Qopt-report-file:stdout f15340.f90

Begin optimization report for: F15340

    Report from: Vector optimizations [vec]

LOOP BEGIN at f15340.f90(6,1
   remark #15340: pragma supersedes previous setting
   remark #15300: 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)

See also:

Requirements for Vectorizable Loops

Vectorization Essentials

Vectorization and Optimization Reports

Back to the list of vectorization diagnostics for Intel® Fortran