GCC presently enables the loop vectorizer at lower optimization levels for OpenMP loops with the "simd" specifier than it does for loops without it. The "simd" specifier isn't defined to be purely an optimization hint to the compiler; it also has semantic effects like changing the privatization of the loop variable. It seems reasonable to decouple the additional vectorization from those semantic effects and apply it also to work-sharing loops without the "simd" specifier at the same optimization levels. I've tested this patch on x86_64-linux-gnu-amdgcn, plain x86_64-linux-gnu, and aarch64-linux-gnu. OK for mainline? -Sandra