https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99767

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Yeah, I don't see a problem on the omp simd cloning side, one could write such
code by hand too.  The thing is the DCE disabling, ifcvt adds .COND_DIV on the
to be vectorized loop copy only, but in the end the loop is vectorized but
.COND_DIV is not because it is dead and the vectorizer supposedly only
considers statements that are actually used.
So, either the vectorizer should do something for the dead statements in the
loop (whatever, including failing the vectorization, or vectorizing them too,
...), or ifcvt shouldn't add those for the dead statements, or we need to lower
those ifns back into scalar statements at the end of vectorization, or be able
to expand them even when scalar.

Reply via email to