On Nov 26, 2013, at 1:14 AM, Richard Biener <richard.guent...@gmail.com> wrote: >>> @@ -2662,8 +2661,8 @@ iv_number_of_iterations (struct loop *loop, rtx >>> insn, rtx condition, >>> iv1.step = const0_rtx; >>> if (INTVAL (iv0.step) < 0) >>> { >>> - iv0.step = simplify_gen_unary (NEG, comp_mode, iv0.step, mode); >>> - iv1.base = simplify_gen_unary (NEG, comp_mode, iv1.base, mode); >>> + iv0.step = simplify_gen_unary (NEG, comp_mode, iv0.step, >>> comp_mode); >>> + iv1.base = simplify_gen_unary (NEG, comp_mode, iv1.base, >>> comp_mode); >>> } >>> iv0.step = lowpart_subreg (mode, iv0.step, comp_mode); >>> >>> separate bugfix? >> >> most likely. i will submit separately. >> >>> @@ -1378,7 +1368,8 @@ decide_peel_simple (struct loop *loop, int flags) >>> /* If we have realistic estimate on number of iterations, use it. */ >>> if (get_estimated_loop_iterations (loop, &iterations)) >>> { >>> - if (double_int::from_shwi (npeel).ule (iterations)) >>> + /* TODO: unsigned/signed confusion */ >>> + if (wi::leu_p (npeel, iterations)) >>> { >>> if (dump_file) >>> { >>> >>> what does this refer to? npeel is unsigned. >> >> >> it was the fact that they were doing the from_shwi and then using an >> unsigned test. > > Ah - probably a typo. Please just remove the "TODO".
Done: Index: loop-unroll.c =================================================================== --- loop-unroll.c (revision 206183) +++ loop-unroll.c (working copy) @@ -1371,7 +1371,6 @@ decide_peel_simple (struct loop *loop, i /* If we have realistic estimate on number of iterations, use it. */ if (get_estimated_loop_iterations (loop, &iterations)) { - /* TODO: unsigned/signed confusion */ if (wi::leu_p (npeel, iterations)) { if (dump_file) >>> Otherwise looks good to me. Kenny hasn't yet integrated the first into trunk, but I'd like to ask anyway: Ok?