https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109732
--- Comment #14 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Figured out a C testcase: ``` [[gnu::noipa]] _Bool f3(_Bool a) { if (a==0) return 0; else return a; } ``` Still need: `-fdisable-tree-fre1` though because fre is able to figure out that the return value is always a. We don't need to disable ethread any more since cfgcleanup will not remove the forwarding BB as it has a predict statement in it. There are actually two conditions that need to happen to get the wrong code. First is the order of the phi and then also the order of the edges. The above is enough to get both.