https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89595
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- For some reason the testcase doesn't fail on the branch. DOM dump: Visiting PHI node: i_3 = PHI <0(2), _9(3)> Argument #0 (2 -> 4 executable) 0: [0, 0] Argument #1 (3 -> 4 executable) _9: UNDEFINED Meeting [0, 0] and UNDEFINED to [0, 0] LKUP STMT i_3 = PHI <0, _9> 2>>> STMT i_3 = PHI <0, _9> <<<< STMT i_3 = PHI <0, _9> Optimizing statement bb_5: Optimizing statement return i_3; so the singleton isn't extracted for some reason. The issue is still latent of course.