http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47447
--- Comment #6 from asharif at gcc dot gnu.org 2011-02-03 22:25:01 UTC --- What happens is tree vectorization introduces code in the preheader to check for the loop iterations at runtime. The expression holding the number of iterations may contain ssa names that are abnormal. This may extend their live range (that is what happens in this testcase) and make them conflict with other abnormal names. That leads to an ICE. I wonder what the other passes do that hoist such code effectively extending the live ranges of abnormal ssa names.