https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70941
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- 4.9 has (void) (a = (char) ((-(unsigned char) b - (unsigned char) ((signed char) ((signed char) d != 0 && (signed char) c != 0) ^ -128)) + 19)) >>>>>; if ((signed char) a != -109)