Quantcast
Channel: Fortran
Viewing all articles
Browse latest Browse all 3108

Diagnostic 15042: pragma supersedes previous setting

$
0
0

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

  • fortran
  • vectorization
  • directives attributes optimization
  • Développeurs
  • Apple OS X*
  • Linux*
  • Microsoft Windows* (XP, Vista, 7)
  • Microsoft Windows* 8
  • Serveur
  • Fortran
  • Outils de cluster
  • Intel® Parallel Studio XE
  • Outils de développement
  • Serveur
  • Bureau
  • URL

  • Viewing all articles
    Browse latest Browse all 3108

    Trending Articles



    <script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>