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

--- Comment #24 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> Would it be possible to  backport the VIEW_CONVERT_EXPR change?

The VIEW_CONVERT_EXPR is preserved on the mainline thanks to the fix for PR
tree-optimization/116412:

commit c7b76a076cb2c6ded7ae208464019b04cb0531a2
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.

    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.

(which incidentally doesn't mention VIEW_CONVERT_EXPR).

But IMO this only papers over the issue, which is the questionable hole drilled
into the type system.

Reply via email to