https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120258
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- _5 = a.1_2 * -2147483647; _6 = b.0_1 + _5; vs: _3 = b.0_1 + a.1_2; slsr_10 = a.1_2 * -2147483648; _6 = _3 - slsr_10; Obvious this introduces an signed integer overflow.