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

--- Comment #10 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-13 branch has been updated by Andrew Pinski
<pins...@gcc.gnu.org>:

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

commit r13-9531-gde622c307743cc03f45f1ba7b0c2f8df0b378206
Author: Andrew Pinski <quic_apin...@quicinc.com>
Date:   Mon Aug 19 08:06:36 2024 -0700

    match: Reject non-ssa name/min invariants in gimple_extract [PR116412]

    After the conversion for phiopt's conditional operand
    to use maybe_push_res_to_seq, it was found that gimple_extract
    will extract out from REALPART_EXPR/IMAGPART_EXPR/VCE and BIT_FIELD_REF,
    a memory load. But that extraction was not needed as memory loads are not
    simplified in match and simplify. So gimple_extract should return false
    in those cases.

    Changes since v1:
    * Move the rejection to gimple_extract from
factor_out_conditional_operation.

    GCC13: the function is in gimple-match-head.cc rather than
gimple-match-exports.cc.

    Bootstrapped and tested on x86_64-linux-gnu.

            PR tree-optimization/116412

    gcc/ChangeLog:

            * gimple-match-head.cc (gimple_extract): Return false if op0
            was not a SSA name nor a min invariant for
REALPART_EXPR/IMAGPART_EXPR/VCE
            and BIT_FIELD_REF.

    gcc/testsuite/ChangeLog:

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

    Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com>
    (cherry picked from commit c7b76a076cb2c6ded7ae208464019b04cb0531a2)

Reply via email to