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

Jeffrey A. Law <law at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #1 from Jeffrey A. Law <law at gcc dot gnu.org> ---
Daniel's patch directly targets the conditional sequence seen in this BZ:



commit f6f33ca83cb6b84cc5d157103ac70c143011b176
Author: Daniel Barboza <[email protected]>
Date:   Fri May 1 14:53:12 2026 -0600

    [PATCH] match.pd: make "if (c) a |= CST1 else a &= ~CST1" unconditional
[PR123967]

So instead of a branchy sequence where one arm does the IOR and the other an
AND we get a nice branchless sequence.  We never need to emit any zero_extends
for that branchless sequence as we go from gimple->RTL.  So naturally there's
no zero-extend for ext-dce to try and remove.

Closing as Daniel's patch indirectly fixed the problem.  I wouldn't be
surprised if there were other ways to trigger this missed optimization in
ext-dce, but until we have a viable testcase, there's no sense in keeping this
open.

Reply via email to