https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107767
--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> --- Looks like a general CFG optimization if we have N forwarders to a PHI with the same value then we can merge them to one (it's enough to have a single forwarder which we can use as the remaining one even). Note that's kind-of a reverse mergephi for same values. PHI <a, b, c, c> -> forwarder | PHI <a, b, c> CFG cleanup will then eventually elide forwarders into the added forwarder.