https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110233
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |aldyh at gcc dot gnu.org
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
VRP2/DOM3 produces the wrong folding for some reason:
Folding statement: _27 = b.6_9 * 2;
Queued stmt for removal. Folds to: 2147483647
I don't uinderstand how it could get that from:
# RANGE [irange] long unsigned int [0, 2147483647][18446744071562067968,
+INF]
_8 = (long unsigned intD.10) c.5_7;
# VUSE <.MEM_18(D)>
b.6_9 = bD.2751;
# RANGE [irange] long unsigned int [0, 2147483647][18446744071562067968,
+INF]
_10 = (long unsigned intD.10) b.6_9;
# RANGE [irange] long unsigned int [0, 4294967294][18446744069414584320,
+INF]
_11 = _8 + _10;
# RANGE [irange] long unsigned int [0, 813160647][18446744065932777673, +INF]
_12 = _11 + 18446744070227744969;
if (_12 <= 2)
goto <bb 3>; [50.00%]
else
goto <bb 9>; [50.00%]
;; succ: 3 [50.0% (guessed)] count:357878153 (estimated locally)
(TRUE_VALUE,EXECUTABLE)
;; 9 [50.0% (guessed)] count:357878153 (estimated locally)
(FALSE_VALUE,EXECUTABLE)
;; basic block 3, loop depth 0, count 357878153 (estimated locally), maybe
hot
;; prev block 2, next block 4, flags: (NEW, REACHABLE, VISITED)
;; pred: 2 [50.0% (guessed)] count:357878153 (estimated locally)
(TRUE_VALUE,EXECUTABLE)
_28 = b.6_9 * 2;