https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106458
--- Comment #15 from dave.anglin at bell dot net --- On 2022-08-10 9:30 a.m., rguenth at gcc dot gnu.org wrote: > hen I try with a cc1 cross I see > >> ./cc1 -quiet t.i -fpreprocessed -O2 -g -std=gnu11 -fgnu89-inline >> -fmerge-all-constants -frounding-math -fno-stack-protector -fno-common >> -fmath-errno -fno-pie -fopt-info-vec > and nothing actually vectorized. Besides the PRE there seems to be a missed > DSE at the end (when vectorization is enabled as after the change): > > # DEBUG BEGIN_STMT > memset (&buf.__space.__c, 64, 1024); > # DEBUG BEGIN_STMT > + sizes[0] = 16; > sizes[1] = 1024; > sizes[2] = 1040; > > otherwise I see nothing suspicious in differences in .optimized when > comparing -fdump-tree-optimized with/without -fno-tree-vectorize. > I'm not sure what's going on with the sizes[0] statement but the main difference in .optimize with and without pre seems to be in the handling of the old_length variable in do_test: Removing basic block 86 int do_test () { - unsigned int ivtmp.23; - size_t old_length; + unsigned int ivtmp.28; void * r; void * c; size_t l;