Richard Biener <rguent...@suse.de> writes: > The following includes whether we vectorize an epilogue, whether > we use loop masking and what vectorization factor (unroll factor) > we use. So it's now > > t.c:4:21: optimized: loop vectorized using 64 byte vectors and unroll factor > 32 > t.c:4:21: optimized: epilogue loop vectorized using masked 64 byte vectors > and unroll factor 32 > > for a masked epilogue with AVX512 and HImode data for example. Rather > than > > t.c:4:21: optimized: loop vectorized using 64 byte vectors > t.c:4:21: optimized: loop vectorized using 64 byte vectors > > I verified we don't translate opt-info messages and thus excessive > use of %s to compose the strings should be OK. > > Bootstrap and regtest ongoing on x86_64-unknown-linux-gnu > (merely to look for testcases scanning for the old message too > closely). > > Any comments or suggestions for improvements?
It might be worth adding the vector-level unroll factor for the variable-length case (suggested_unroll_factor), but that could be a future change. So LGTM FWIW. Thanks for doing this. Richard > > * tree-vectorizer.cc (vect_transform_loops): When diagnosing > a vectorized loop indicate whether we vectorized an epilogue, > whether we used masked vectors and what unroll factor was > used. > --- > gcc/tree-vectorizer.cc | 13 +++++++++++-- > 1 file changed, 11 insertions(+), 2 deletions(-) > > diff --git a/gcc/tree-vectorizer.cc b/gcc/tree-vectorizer.cc > index 447f882c518..2f77e46ba99 100644 > --- a/gcc/tree-vectorizer.cc > +++ b/gcc/tree-vectorizer.cc > @@ -1026,10 +1026,19 @@ vect_transform_loops (hash_table<simduid_to_vf> > *&simduid_to_vf_htab, > { > if (GET_MODE_SIZE (loop_vinfo->vector_mode).is_constant (&bytes)) > dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location, > - "loop vectorized using %wu byte vectors\n", bytes); > + "%sloop vectorized using %s%wu byte vectors and" > + " unroll factor %u\n", > + LOOP_VINFO_EPILOGUE_P (loop_vinfo) > + ? "epilogue " : "", > + LOOP_VINFO_USING_PARTIAL_VECTORS_P (loop_vinfo) > + ? "masked " : "", bytes, > + (unsigned int) LOOP_VINFO_VECT_FACTOR > + (loop_vinfo).to_constant ()); > else > dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location, > - "loop vectorized using variable length vectors\n"); > + "%sloop vectorized using variable length vectors\n", > + LOOP_VINFO_EPILOGUE_P (loop_vinfo) > + ? "epilogue " : ""); > } > > loop_p new_loop = vect_transform_loop (loop_vinfo,