Diagnostic 15040: loop was not vectorized: no instance of vectorized math function satisfies specified math function attributes

Cause:

The option -fimf-max-error defines the maximum allowable relative error measured in ulps for math library functions. When this value is set to 0, it looks for a vector version of the math function called which satisfies the attribute. If no such instance of the function detected, this vectorization diagnostic is emitted. Below is an example for this scenario:

Example:

#include<stdlib.h>
#define N 70
int main(int argc, char 
*argv[]){
int a[N], i;
for(i = 2; i < N; i++)
        a[i] = a[i-2] 
+ 1;
return 0;
}


$ icpc example26.cc -vec-report2 -c -fimf-max-error=0
example26.cc(5): (col. 3) remark: loop was not vectorized: no instance of vectorized math function satisfies specified math function attributes
example26.cc(6): (col. 10) warning #13383: No instance of function "cbrt" satisfies math function attributes "max-error=0 domain-exclusion=0 valid-status-bits=false"

For more complete information about compiler optimizations, see our Optimization Notice.