http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47860
--- Comment #3 from vincenzo Innocente <vincenzo.innocente at cern dot ch> 2011-02-24 08:24:31 UTC --- Thanks Ira for the quick answer. For what concern if (N <= 0) that was the reason to use "unsigned int" which apparently cause vectorization not to work. As we are on the subject: do you plan to support autovectorization of idioms such "location of max"? such as float const * lmin2(float const * __restrict__ b, float const * __restrict__ e) { float const * ret = b++; float amin = *(ret); for(;b!=e; ++b) if (amin>(*b)) { ret = b; amin = *ret; } return ret; } or equivalent. It is used very often (for instance in pivoting code). vincenzo