https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105338
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu.org Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed| |2022-04-22 --- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- I think none is more canonical so I wonder if there's an easy way to have ifcvt recognize both? But yes, it's probably a duplicate, but at least for x86 and with complete testcases. Note one of the issues is that creating/removing forwarders can end up swapping things. To avoid this (for GCC 13) we can try to not as aggressively remove them (basically keep critical edges split) and maybe mark (temporarily) created forwarders with a flag so that CFG cleanup can pick the "correct" one when it is used as vehicle to remove them again (as in this case).