http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49218
--- Comment #5 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-05-29 17:19:36 UTC --- It's VRP being confused about the IV-optimized variant <bb 2>: std::basic_istream<char>::_M_extract<float> (&cin, &ans); ans.1_2 = ans; i_3 = (long long int) ans.1_2; if (i_3 <= 10) goto <bb 3>; else goto <bb 4>; <bb 3>: # i_12 = PHI <i_6(3), i_3(2)> i_6 = i_12 + 1; if (i_6 != 11) goto <bb 3>; else goto <bb 4>; <bb 4>: std::basic_ostream<char>::operator<< (&cout, ans.1_2); return 0;