https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90071
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- Matching expression match.pd:1195, generic-match.c:115 Applying pattern match.pd:1251, generic-match.c:17730 Matching expression match.pd:100, generic-match.c:22 Optimizing range tests e_21(ab) +[, 0] and +[-1, ] into (unsigned int) e_21(ab) + 1 <= 1 Index: gcc/tree-ssa-reassoc.c =================================================================== --- gcc/tree-ssa-reassoc.c (revision 270358) +++ gcc/tree-ssa-reassoc.c (working copy) @@ -2143,7 +2143,8 @@ init_range_entry (struct range_entry *r, exp_type = boolean_type_node; } - if (TREE_CODE (arg0) != SSA_NAME) + if (TREE_CODE (arg0) != SSA_NAME + || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (arg0)) break; loc = gimple_location (stmt); switch (code)