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

            Bug ID: 125852
           Summary: [16/17 Regression] Failure to late-combine address
                    generation with load/store
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: law at gcc dot gnu.org
  Target Milestone: ---

pr120811 started failing after this change:

ommit 3ebe697f32197ec4a429fbf8dd9cce3155c0c9ba
Author: Andrew Pinski <[email protected]>
Date:   Fri Jan 9 02:02:01 2026 -0800

    cfgcleanup: Protect latches always [PR123417]

    So it turns out LOOPS_MAY_HAVE_MULTIPLE_LATCHES is set in places
    along compiling. Setting it only means there might be multiple
    latches currently. It does not mean let's go in an delete them
    all; which is what remove_forwarder_block does currently. This
    was happening before my set of patches too but since it was
    only happening in merge_phi pass, latches were not cleared away
    al of the time and then recreated.
[ ... ]

>From a quick review of the dumps it seems like we're simply no longer trying to
combine the address generation with the load intruction after reload.  Note
that the test was matching too aggressively, so you actually need to verify
that the 2047 offset shows up in the memory reference, not as a distinct add
instruction.

Reply via email to