Hi all, After reading this SO post (*), I became curious as to what my gcc would do with the following code. It turns out that I cannot make any sense of the output: % gcc -fopt-info-missed -std=c11 -O3 -c generic.c generic.c:4:21: missed: couldn't vectorize loop generic.c:2:5: missed: not vectorized: relevant phi not supported: found_14 = PHI <found_5(7), 0(15)> Doing a quick search did not reveal anything meaningful. If my understanding is correct this is a basic information level (not meant for GCC developers): * https://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html#index-fopt-info So my question is: what should the following sentence indicates ... missed: not vectorized: relevant phi not supported: found_14 = PHI <found_5(7), -1(15)> ... For reference; % cat generic.c #include <stdint.h> int hasmatch(uint16_t needle, const uint16_t haystack[4]) { int found = 0; for (int i = 0; i < 4; ++i) { if (needle == haystack[i]) { found = 1; } } return found; } (*) https://stackoverflow.com/questions/74803190/fastest-way-to-find-16bit-match-in-a-4-element-short-array Thanks ! -- Mathieu