https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105363
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization Component|c |tree-optimization Last reconfirmed| |2022-04-25 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 CC| |rguenth at gcc dot gnu.org, | |rsandifo at gcc dot gnu.org --- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- t.c:12:14: note: Cost model analysis: _8 1 times scalar_store costs 12 in body _4 1 times scalar_store costs 12 in body *_7 1 times scalar_load costs 12 in body *_3 1 times scalar_load costs 12 in body *_3 1 times vec_perm costs 4 in body *_7 1 times unaligned_load (misalign -1) costs 12 in body _8 1 times unaligned_store (misalign -1) costs 12 in body *_7 1 times vec_to_scalar costs 4 in epilogue *_3 1 times vec_to_scalar costs 4 in epilogue t.c:12:14: note: Cost model analysis for part in loop 2: Vector cost: 36 Scalar cost: 48 t.c:12:14: note: Basic block will be vectorized using SLP which generally looks OK-ish. It's true that GCC could take into account the containing loop which could make it detect the store forwarding problem but currently we are not analyzing data references with respect to any loop for non-loop vectorization.