https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78319
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- It's a matter of costs (here BRANCH_COST and its uses in fold and ifcombine). You don't mention what IL differences your patch causes (I'll check soon myself). For the issue at hand I suggest to XFAIL for affected architectures. Generally the late uninit pass needs a rewrite to be conservative (make its data-flow compute must-be-may-uninitialized rather than erring on the false positive side when its analysis gives up). A good research project would be to write an IPA static analysis pass that performs at least some trivial "optimization" itself (constant folding and propagation) but does not do any IL changes.