https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82732
--- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #8) > VRP2 can do it because of > Applying pattern match.pd:5271, gimple-match-7.cc:6107 > Applying pattern match.pd:237, gimple-match-6.cc:10371 > Applying pattern match.pd:4000, gimple-match-8.cc:1587 > Applying pattern match.pd:4098, gimple-match-6.cc:16572 > gimple_simplified to _15 = (sizetype) size_8(D); > Folded into: _15 = (sizetype) size_8(D); /* Perform binary operation inside the cast if the constant fits and (A + CST)'s range does not overflow. */ If FRE's VN could do that simplification and then lookup the value it would see it is redundant.