https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83008
--- Comment #20 from sergey.shalnov at intel dot com --- Richard, I did quick static analysis for your latest patch. Using command line “-g -Ofast -mfpmath=sse -funroll-loops -march=znver1” your latest patch doesn’t affects the issue I discussed but it affects costs for first loop. I thought the loop costs should be calculated in other place (tree-vect-loop.c) but as I can see everything is interconnected. The SLP block we discussed remains with the same statistic: Vector inside of basic block cost: 64 Vector prologue cost: 32 Vector epilogue cost: 0 Scalar cost of basic block: 256 note: Basic block will be vectorized using SLP First loop was: note: Cost model analysis:. Vector inside of loop cost: 5392 Vector prologue cost: 48 Vector epilogue cost: 0 Scalar iteration cost: 464 Scalar outside cost: 0 Vector outside cost: 48 prologue iterations: 0 epilogue iterations: 0 note: cost model: the vector iteration cost = 5392 divided by the scalar iteration cost = 464 is greater or equal to the vectorization factor = 4. Became: note: Cost model analysis: Vector inside of loop cost: 5392 Vector prologue cost: 192 Vector epilogue cost: 0 Scalar iteration cost: 464 Scalar outside cost: 0 Vector outside cost: 192 prologue iterations: 0 epilogue iterations: 0 note: cost model: the vector iteration cost = 5392 divided by the scalar iteration cost = 464 is greater or equal to the vectorization factor = 4. Sergey