On 8/20/24 1:14 PM, Andrew Pinski wrote:
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.
OK
jeff

Reply via email to