https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111039
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- # flags_1(ab) = PHI <flags_6(D)(ab)(2), flags_2(ab)(4)> _setjmp (flags_1(ab)); _14 = flags_6(D)(ab) & 9437184; The use of _6 is the issue here. The problem shows up in ifcombine pass: optimizing double bit test to flags_6(D)(ab) & T == T with temporary T = (1 << 23) | (1 << 20)