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

--- Comment #10 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-12 branch has been updated by Jakub Jelinek
<ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:9468cc35daca9fd6a0ec479217bb40a77616fb25

commit r12-8362-g9468cc35daca9fd6a0ec479217bb40a77616fb25
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Tue May 10 18:34:08 2022 +0200

    isel: Fix up gimple_expand_vec_set_expr [PR105528]

    The following testcase ICEs (and only without -g), because we don't replace
    one VEC_COND_EXPR with .VCOND* call.
    We don't do that because gimple_expand_vec_set_expr adds some stmts before
    *gsi and then uses gsi_remove to remove it.  gsi_remove moves the iterator
    to the next stmt and in the caller we then do gsi_next before looking at
    another stmt, which means we can skip processing of one stmt, which in this
    case happened to be a VEC_COND_EXPR but with -g is some debug stmt in
    between.  As we always emit some stmts before it, it is easy to update the
    iterator to the last stmt emitted there, so that caller continues really
    with the next stmt.

    2022-05-10  Jakub Jelinek  <ja...@redhat.com>

            PR tree-optimization/105528
            * gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove
            set *gsi to gsi_for_stmt (ass_stmt).  Fix up function comment.

            * gcc.dg/pr105528.c: New test.

    (cherry picked from commit ddd46293e2b508b260eefe1adbad6720df7a5dd2)

Reply via email to