https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97315
--- Comment #2 from Aldy Hernandez <aldyh at gcc dot gnu.org> --- evrp and ranger disagree on the singleton range for _3 in the following stmt: <bb 5> : if (_3 != 1) (gdb) ptg evrp_ret 0 (gdb) ptg ranger_ret 1 Which is interesting because BB5 is actually unreachable: add_type_duplicate () { struct tree_node * D.2384; struct tree_node * add_type_duplicate_type.2_1; short unsigned int _2; int _3; tree_code_class _4; <bb 2> : add_type_duplicate_type.2_1 = add_type_duplicate_type; _2 = add_type_duplicate_type.2_1->base.code; _3 = (int) _2; _4 = tree_code_type[_3]; if (_4 != 0) goto <bb 3>; [INV] else goto <bb 11>; [INV] <bb 3> : if (_2 == 0) goto <bb 13>; [INV] else goto <bb 11>; [INV] <bb 4> : if (0 != 0) goto <bb 5>; [66.00%] else goto <bb 15>; [34.00%] <bb 15> : goto <bb 12>; [100.00%] <bb 5> : if (_3 != 1) goto <bb 6>; [0.04%] else goto <bb 14>; [99.96%] <bb 14> : goto <bb 7>; [100.00%] <bb 6> : tree_check_failed (); <bb 13> : <bb 7> : <bb 12> : if (0 != 0) goto <bb 8>; [66.00%] else goto <bb 10>; [34.00%] <bb 8> : if (1 != 0) goto <bb 9>; [0.04%] else goto <bb 10>; [99.96%] <bb 9> : tree_check_failed (); <bb 10> : if (1 != 0) goto <bb 4>; [INV] else goto <bb 11>; [INV] <bb 11> : return; } I'm guessing evrp