https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85237
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2018-04-06 Component|rtl-optimization |middle-end Ever confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Yeah, we don't really take advantage of UB in shifts. Instead we really treat them implementation-defined aka 100 >> 1000 is zero, likewise we do (did?) treat 100 >> -2 as 100 << 2. Note historically RTL doesn't have any UB, it matches target implementation behavior for shifts (see that stupid SHIFT_COUNT_TRUNCATED thing...).