http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56446
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> 2013-02-26 10:09:32 UTC --- I think it's a very special case and generally indirect calls should be avoided (they are slower, have a cost on the branch target buffer, have an extra dependency, increase register lifetime, etc.). If profitable for a target the target should be un-propagated/CSEd late during RTL optimizations. Well, just my 2 cents.