Diagnostic 15327: loop was not vectorized: type conversion prohibits vectorization

Cause:

This diagnostic message is emitted when a vector type conversion is attempted inside the loop which is not supported by hardware or emulation sequence. The vector type conversions supported (either by hardware or emulation sequence) are from {signed/unsigned-8/16/32/64bit integers, 32/64bit floats, and 64/128bit complex} to {signed/unsigned-8/16/32/64bit integers, 32/64bit floats, and 64/128bit complex}. QuAD precision FP is not directky supported by the harware. Below is an example for this scenario.

Example:

void foo2(double *a, long double *b, int n){
  int i;
#pragma ivdep 
  for (i=0; i<n; i++){
    a[i] = b[i];
  }
}


$ icc example20.c -c -vec-report2
example20.c(5): (col. 12) remark: loop was not vectorized: type conversion prohibits vectorization