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.