http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50113
--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-08-18 09:07:29 UTC --- Can you try disabling the VRP code that changes unsigned -> float to int -> float (simplify_float_conversion_using_ranges)?