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

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

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

commit r15-3052-gc7b76a076cb2c6ded7ae208464019b04cb0531a2
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.

    Bootstrapped and tested on x86_64-linux-gnu.

            PR tree-optimization/116412

    gcc/ChangeLog:

            * gimple-match-exports.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>

Reply via email to