http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54317
--- Comment #3 from Marc Glisse <glisse at gcc dot gnu.org> 2012-08-22 06:19:17 UTC --- Actually, I reviewed my patch and I just found a bug, which can be seen on x86_64 with: extern void g(); void f(unsigned __int128 x){ unsigned __int128 n2 = 1; n2 <<= 127; if(x>n2)return; unsigned __int128 y = x + x; if (y == 42) g(); } (using gmp in tree-vrp would have been so much less trouble...) I'll try to fix that soon and we'll see if the failures disappear.