https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120629
--- Comment #18 from Jakub Jelinek <jakub at gcc dot gnu.org> --- With --param=ranger-debug=all I see 21 range_of_expr(_57) at stmt __builtin_memset (_60, 0, _57); 22 range_of_stmt (_57) at stmt _57 = _56 * 4; 23 ROS dependence fill ROS dep fill (_57) at stmt _57 = _56 * 4; ROS dep fill (_56) at stmt _56 = _55 + 1; ROS dep fill (_55) at stmt _55 = (sizetype) _54; 24 range_of_expr(_54) at stmt _55 = (sizetype) _54; TRUE : (24) range_of_expr (_54) [irange] unsigned int [7, 7] Registering value_relation (_55 pe32 _54) (bb11) at _55 = (sizetype) _54; GLOBAL : UPDATE cache for _55 in BB 11 : successors : : No updates! 25 range_of_expr(_55) at stmt _56 = _55 + 1; TRUE : (25) range_of_expr (_55) [irange] sizetype [7, 7] MASK 0x7 VALUE 0x0 Registering value_relation (_56 > _55) (bb11) at _56 = _55 + 1; GLOBAL : UPDATE cache for _56 in BB 11 : successors : : No updates! FALSE : (23) ROS (_57) 26 range_of_expr(_56) at stmt _57 = _56 * 4; TRUE : (26) range_of_expr (_56) [irange] sizetype [8, 8] MASK 0xf VALUE 0x0 GLOBAL : UPDATE cache for _57 in BB 11 : successors : : No updates! TRUE : (22) range_of_stmt (_57) [irange] sizetype [32, 32] MASK 0x3c VALUE 0x0 _54 seems to have global range [0, 7] though.