http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53693
--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-06-18 10:56:23 UTC --- Fact is we detect D.2215_20 = (int) gh_18; D.2216_21 = D.2215_20 << 5; D.2217_22 = (signed short) D.2216_21; but do not see the use D.2222_27 = D.2211_15 - D.2215_20; for some reason and thus set STMT_IN_PATTER_P on the D.2215_20 def and fail to vectorize it. I am testing a patch.