http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53676
--- Comment #7 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-06-25 13:39:29 UTC --- In SCEV analysis we'd need to detect the pattern feeding the truncation tem_3 = (int) result_2; tem_4 = tem_3 + 2; result_5 = (signed char) tem_4; in interpret_rhs_expr - otherwise we ask for the evolution of tem_4 which we cannot express properly because tem_3's chrec wraps. So we'd need to handle result_5 = (signed char) ((int) result_2 + 2) as if it were done without the intermediate tem_4.