On 07/07/2015 11:08, Richard Biener wrote: > Also I am not sure ceil_div and floor_div can be handled this way. > (5 /[ceil] 2) * 2 == 6 but you compute it as 4. So I am only convinced > trunc_div works this way.
Of course also floor_div for unsigned arguments. For signed arguments, ceil_div works if the operand is known-negative and floor_div if known-positive. Perhaps you could optimize these cases to trunc_div first (or maybe it's already done...)? Paolo