New Vectorization Diagnostics starting from Intel® Fortran Compiler 15.0

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

The following diagnostic messages from the vectorization report produced by Intel® Fortran Compiler. To obtain a vectorization report use Intel® Fortran Compiler options: -qopt-report -qopt-report-phase=vec (Linux* OS and OS X*) or /Qopt-report /Qopt-report-phase:vec (Windows* OS).

Diagnostics Number

Diagnostic Description

Diagnostic 15552loop was not vectorized with "simd"
Diagnostic 15300LOOP WAS VECTORIZED
Diagnostic 15304non-vectorizable loop instance from multiversioning
Diagnostic 15310loop was not vectorized: operation cannot be vectorized
Diagnostic 15319loop was not vectorized: novector directive used
Diagnostic 15328vectorization support:irregularly indexed load was emulated for the variable <a(index(i))>
Diagnostic 15331Using FP model precise prevents vectorization
Diagnostic 15335vectorization possible but seems inefficient
Diagnostic 15316simd loop was not vectorized: scalar assignment in simd loop is prohibited, consider private, lastprivate or reduction clauses 
Diagnostic 15340pragma supersedes previous setting
Diagnostic 15344loop was not vectorized: vector dependence prevents vectorization
Diagnostic 15346vector dependence: assumed ANTI dependence between  line x and  line x
Diagnostic 15378xxxx was not vectorized: /Qfreestanding flag prevents vectorization of integer divide/remainder
Diagnostic 15398loop was not vectorized: loop was transformed to memset or memcpy
Diagnostic 15414loop was not vectorized: loop body became empty after optimizations
Diagnostic 15415vectorization support: gather was generated for the variable a: indirect access
Diagnostic 15423loop has only one iteration
Diagnostic 15516loop was not vectorized: cost model has chosen vectorlength of x -- maybe possible to override via pragma/directive with vectorlength clause
Diagnostic 15517loops in this subroutine cannot be vectorized due to use of EBX/RBX register in inline ASM.
Diagnostic 15520loop was not vectorized: loop with early exits cannot be vectorized
Diagnostic 15521loop was not vectorized: explicitly compute the iteration count before executing the loop
Diagnostic 15522loop was not vectorized: loop control flow is too complex. Simplify control flow
Diagnostic 15523loop was not vectorized: cannot compute loop iteration count before executing the loop
Diagnostic 15524loop was not vectorized: search loop cannot be vectorized unless all memory references can be aligned vector load
Diagnostic 15527loop was not vectorized: function call to xxxx cannot be vectorized
Diagnostic 15529loop was not vectorized: volatile assignment was not vectorized. Try using non-volatile assignment
Diagnostic 15532loop 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 15535xxxx was not vectorized: loop contains switch statement. Consider using if-else statement.
Diagnostic 15537loop was not vectorized: implied FP exception model prevents usage of SVML library needed for truncation or integer divide/remainder
Diagnostic 15541outer loop was not auto-vectorized: consider using SIMD directive
Diagnostic 15542loop was not vectorized: inner loop was already vectorized
Diagnostic 15543loop was not vectorized: loop with function call not considered an optimization candidate.
Diagnostic 25463Optimization for this routine was skipped to constrain compile time. Consider overriding limits (-qoverride-limits).
Diagnostic 25464Some optimizations were skipped to constrain compile time. Consider overriding limits (-qoverride-limits).
Для получения подробной информации о возможностях оптимизации компилятора обратитесь к нашему Уведомлению об оптимизации.