https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117271
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Global Exported: _40 = [irange] int [-2, 2] Global Exported: _71 = [irange] int [0, 1] MASK 0x1 VALUE 0x0 Global Exported: iftmp.0_53 = [irange] int [2, 3] MASK 0x1 VALUE 0x2 Global Exported: n_52 = [irange] int [0, 2] Simplified relational if (n_52 <= 1) into if (n_52 != 2) Global Exported: _70 = [irange] int [0, 1] MASK 0x1 VALUE 0x0 Global Exported: iftmp.2_54 = [irange] int [1, 2] MASK 0x3 VALUE 0x0 Global Exported: _25 = [irange] int [0, 2] Simplified relational _26 = n_52 > 0; into _26 = n_52 == 1; It is the second one which causes the issue. But that has so many things down the line.