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

--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Pan Li <pa...@gcc.gnu.org>:

https://gcc.gnu.org/g:999363c53cf6cd87f75f96388a531e090299b97d

commit r15-3789-g999363c53cf6cd87f75f96388a531e090299b97d
Author: Pan Li <pan2...@intel.com>
Date:   Sat Sep 21 22:30:18 2024 +0800

    Genmatch: Fix ICE for binary phi cfg mismatching [PR116795]

    This patch would like to fix one ICE when try to match the binary
    phi for below cfg.  We check the first edge of the Phi block comes
    from b0, instead of check the only one edge of b1 comes from the
    b0 too.  Thus, it will result in some code to be recog as .SAT_SUB
    but it is not, and finally result the verify_ssa failure.

    +------+
    | b0:  |
    | def  |       +-----+
    | ...  |       | b1: |
    | cond |------>| def |
    +------+       | ... |
       |           +-----+
       |              |
       |              |
       v              |
    +-----+           |
    | b2: |           |
    | Phi |<----------+
    +-----+

    The below test suites are passed for this patch.
    * The rv64gcv fully regression test.
    * The x86 bootstrap test.
    * The x86 fully regression test.

            PR target/116795

    gcc/ChangeLog:

            * gimple-match-head.cc (match_cond_with_binary_phi): Fix the
            incorrect cfg check as b0->b1 in above example.

    gcc/testsuite/ChangeLog:

            * gcc.dg/torture/pr116795-1.c: New test.

    Signed-off-by: Pan Li <pan2...@intel.com>

Reply via email to