https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69291
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> --- Created attachment 37651 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37651&action=edit preprocessed source Build with -m32 -mtune=generic -march=i586 -O [-fPIC] -fdisable-rtl-ce2 (if-conversion after combine) fixes it. IF-THEN-ELSE-JOIN block found, pass 1, test 63, then 64, else 65, join 128 scanning new insn with uid = 842. scanning new insn with uid = 843. scanning new insn with uid = 844. scanning new insn with uid = 845. scanning new insn with uid = 846. scanning new insn with uid = 847. deleting insn with uid = 363. deleting block 65 Removing jump 354. deleting insn with uid = 354. deleting insn with uid = 357. deleting block 64 Conversion succeeded on pass 1. IF-CASE-2 found, start 88, else 90 verify found no changes in insn with uid = 471. deleting block 90 Conversion succeeded on pass 1. Disabling the IF-THEN-ELSE-JOIN transform above fixes the issue.