http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59387
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Unfortunately it triggers (sccp no longer optimizes) on quite a few testcases: gcc.c-torture/execute/pr58277-1.c gcc.c-torture/execute/pr58831.c gcc.c-torture/execute/pr59387.c gcc.dg/pr58010.c gcc.dg/torture/pr55481.c gcc.dg/torture/pr56366.c gcc.dg/torture/pr59058.c gcc.dg/torture/pr59245.c gcc.dg/tree-ssa/loop-32.c gcc.dg/tree-ssa/loop-33.c gcc.dg/tree-ssa/loop-35.c gcc.dg/tree-ssa/scev-6.c (the first test only for -m64, all the rest both -m32 and -m64, the last even FAILs because of that). Couldn't we just transform that somehow into an unsigned type computation instead in that case, at least for simple cases?