Intel® Fortran Vectorization Diagnostics

Intel® Fortran Compiler Vectorization Diagnostics

 

We have a similar catalog of vectorization diagnostics for the Intel® C++ Compiler HERE

 

The following diagnostic messages from the vectorization report produced by the Intel® Fortran Compiler.  To obtain a vectorization report, use the -vec-report[n] option in Intel® Fortran for Linux* and Intel® Fortran Mac OS* X, or from the Intel® Visual Fortran for Windows /Qvec-report[:n] option.

Diagnostics Number Diagnostic Description
Diagnostic 15043 loop was not vectorized: nonstandard loop is not a vectorization candidate
Diagnostic 15038 loop was not vectorized: conditional assignment to a scalar
Diagnostic 15015 loop was not vectorized: unsupported data type
Diagnostic 15011 loop was not vectorized: statement cannot be vectorized
Diagnostic 15046 loop was not vectorized: existence of vector dependence
Diagnostic 15018 loop was not vectorized: not inner loop
Diagnostic 15002 LOOP WAS VECTORIZED
Diagnostic 15003 PARTIAL LOOP WAS VECTORIZED
OpenMP SIMD LOOP WAS VECTORIZED
REMAINDER LOOP WAS VECTORIZED
FUSED LOOP WAS VECTORIZED
REVERSED LOOP WAS VECTORIZED
Diagnostic 15037 loop was not vectorized: vectorization possible but seems inefficient
remainder loop was not vectorized: vectorization possible but seems inefficient
Diagnostic 15144 vectorization support: unroll factor set to xxxx
Diagnostic 15133 vectorization support: reference xxxx has aligned access
Diagnostic 15143 loop was not vectorized: loop was transformed to memset or memcpy
Diagnostic 15023 loop was not vectorized: unsupported loop structure
Diagnostic 15134 vectorization support: reference xxxx has unaligned access
Diagnostic 15126 vectorization support: unaligned access used inside loop body
Diagnostic 15048

vector dependence: assumed ANTI dependence between xxxx line and xxxx line
vector dependence: assumed FLOW dependence between xxxx line and xxxx line 

Diagnostic 15042 pragma supersedes previous setting
Diagnostic 15033 loop was not vectorized: modifying order of operation not allowed under given switches
Diagnostic 15032 loop was not vectorized: unsupported reduction
Diagnostic 15040 loop was not vectorized: no instance of vectorized math function satisfies specified math function attributes
Diagnostic 15028 loop was not vectorized: must preserve precise exceptions under given switches
Diagnostic 15021 loop was not vectorized: #pragma novector used
Diagnostic 15123 loop was not vectorized: the freestanding compiler flag prevents vector library calls
Diagnostic 13398 Default vector length for function 'xxxx' is 1 and therefore invalid. A valid vector length needs to be explicitly specified.
Diagnostic 13399 The 'xxxx' processor is not supported for vector functions.
Diagnostic 13395 Command line flag overrides the target processor to 'xxxx' for the vector function xxxx where processor clause is 'xxxx'.
Diagnostic 15092 FUNCTION WAS VECTORIZED.
Diagnostic 15140 The function 'xxxx' declared as vector function in one module does not have prototype in another module.
Diagnostic 15142 No suitable vector variant of function 'xxxx' found.
Diagnostic 15127 vectorization support: call to function xxxx cannot be vectorized
Diagnostic 13378 loop was not vectorized with "simd assert"
Diagnostic 13379 loop was not vectorized with "simd"
Diagnostic 18015 Switch statement inside #pragma simd loop has more than <var> case labels
Diagnostic 18016 Switch statement in vector function has more than <var> case labels
Diagnostic 15125 Invalid vectorlength clause specified
Diagnostic 15017 loop was not vectorized: low trip count
Diagnostic 15167 loop was not vectorized: memory reference is not naturally aligned
Diagnostic 13400 The 'xxxx' processor specified in command line is not supported as default for vector functions
Diagnostic 15163 vectorization support: number of FP up converts: single precision to double precision <val>
Diagnostic 15164 vectorization support: number of FP down converts: double precision to single precision <val>
Diagnostic 15156 vectorization support: conversion from float to int will be emulated
Diagnostic 15155 conversion from int to float will be emulated
Diagnostic 15122 function can't be vectorized: too many registers required to return value (big vector length)
Diagnostic 15135 vectorization support: vectorization of this loop under -Os has impact on code size
Diagnostic 15304 non-vectorizable loop instance from multiversioning
Diagnostic 15319 loop was not vectorized: novector directive used
Diagnostic 15331 Using FP model precise prevents vectorization
Diagnostic 15335 vectorization possible but seems inefficient
Diagnostic 15344 loop was not vectorized: vector dependence prevents vectorization
Diagnostic 15378 remark #15378:
Diagnostic 15414 loop was not vectorized: loop body became empty after optimizations
Diagnostic 15517 remark #15517:
Diagnostic 15521 compile time constraints prevent loop optimization
Diagnostic 15522 loop was not vectorized: loop control flow is too complex. Simplify control flow
Diagnostic 15523 loop was not vectorized: cannot compute loop iteration count before executing the loop
Diagnostic 15524 loop was not vectorized: search loop cannot be vectorized unless all memory references can be aligned vector load
Diagnostic 15527 loop was not vectorized: function call cannot be vectorized
Diagnostic 15532 loop was not vectorized: compile time constraints prevent loop optimization
Diagnostic 15534  loop was not vectorized: loop contains arithmetic if or computed goto. Consider using if-then-else statement. 
Diagnostic 15535 remark #15535:
Diagnostic 15537 loop was not vectorized: implied FP exception model prevents usage of SVML library needed for truncation or integer divide/remainder
Diagnostic 15541 outer loop was not auto-vectorized: consider using SIMD directive
Diagnostic 15542 loop was not vectorized: inner loop was already vectorized
Diagnostic 15543 loop was not vectorized: loop with function call not considered an optimization candidate.
Diagnostic 25463 Optimization for this routine was skipped to constrain compile time. Consider overriding limits (-qoverride-limits).
Diagnostic 25464 Some optimizations were skipped to constrain compile time. Consider overriding limits (-qoverride-limits).
Per informazioni più dettagliate sulle ottimizzazioni basate su compilatore, vedere il nostro Avviso sull'ottimizzazione.