Cause:
This vectorization message is emitted when there are multiple exit points from a given loop. Here the for loop has two different points from the loop (Due to the call to exit(1)) and is not a good candidate for vectorization.In short single entry, multiple exit points will lead to this diagnostic. Below is an example for this scenario.
Example:
#include<iostream> #include<stdlib.h> int main(){ double a[16], b[16], c[16]; for (int i = 0; i < 16; i++) { if (a[i] != 5 || b[i] != 2 || c[i] != 0) { printf("failedn"); exit(1); } } return 0; }
$ icc -vec-report2 example21.cc -c
example21.cc(5): (col. 3) remark: loop was not vectorized: unsupported loop structure