On Sun, 12 Feb 2017, Marc Glisse wrote:

On Tue, 7 Feb 2017, Jakub Jelinek wrote:

        * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
        constant, but SSA_NAME with a known integer range, use the minimum
        of that range instead of op1 to determine if modulo can be replaced
        with its first operand.

Would it make sense to use something like the operand_less_p helper so we would also handle an INTEGER_CST lhs?

Oops, operand_less_p is just a helper for compare_values_warnv and even that one doesn't seem to use ranges, so there may not already be a nice function we can call (?). The idea remains that reusing such code would help handle more cases (it may even handle a few symbolic cases).

unsigned f(unsigned x){
 if(x<42)return 18;
 return 33%x;
}

--
Marc Glisse

Reply via email to