http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54945
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> 2012-10-18 10:15:37 UTC --- i_6 = (intptr_t) &MEM[(void *)&x + 4B]; j_7 = (intptr_t) &y; _8 = i_6 == j_7; forwprop will call fold with (intptr_t) &MEM[(void *)&x + 4B] == (intptr_t) &y But a pointer -> signed/unsigned is not a sign-changing comparison really.