This time to the list too (sorry for double email) Hi, The original patch '[vect] Re-analyze all modes for epilogues', skipped modes that should not be skipped since it used the vector mode provided by autovectorize_vector_modes to derive the minimum VF required for it. However, those modes should only really be used to dictate vector size, so instead this patch looks for the mode in 'used_vector_modes' with the largest element size, and constructs a vector mode with the smae size as the current vector_modes[mode_i]. Since we are using the largest element size the NUNITs for this mode is the smallest possible VF required for an epilogue with this mode and should thus skip only the modes we are certain can not be used. Passes bootstrap and regression on x86_64 and aarch64. gcc/ChangeLog:         PR 103997         * tree-vect-loop.c (vect_analyze_loop): Fix mode skipping for epilogue         vectorization.