http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47477
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-01-29 19:40:25 UTC --- forwprop is a forward walk, for this kind of optimization we want to walk backwards, from the narrowing integer conversion to the operations and whenever we change some operation see if we can change the def_stmts of its operands too.