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

--- Comment #12 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-13 branch has been updated by Richard Biener
<rgue...@gcc.gnu.org>:

https://gcc.gnu.org/g:a3ff14ac4804be400a52dcf630f0de2d57cae835

commit r13-8481-ga3ff14ac4804be400a52dcf630f0de2d57cae835
Author: Richard Biener <rguent...@suse.de>
Date:   Thu Feb 29 09:22:19 2024 +0100

    middle-end/114070 - VEC_COND_EXPR folding

    The following amends the PR114070 fix to optimistically allow
    the folding when we cannot expand the current vec_cond using
    vcond_mask and we're still before vector lowering.  This leaves
    a small window between vectorization and lowering where we could
    break vec_conds that can be expanded via vcond{,u,eq}, most
    susceptible is the loop unrolling pass which applies VN and thus
    possibly folding to the unrolled body of a vectorized loop.

    This gets back the folding for targets that cannot do vectorization.
    It doesn't get back the folding for x86 with AVX512 for example
    since that can handle the original IL but not the folded since
    it misses some vcond_mask expanders.

            PR middle-end/114070
            * match.pd ((c ? a : b) op d  -->  c ? (a op d) : (b op d)):
            Allow the folding if before lowering and the current IL
            isn't supported with vcond_mask.

    (cherry picked from commit f9c30ea737b806caac917d8f501305151a2cbd57)

Reply via email to