https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113035
--- Comment #4 from Jeffrey A. Law <law at gcc dot gnu.org> --- Thanks! It actually looks like there's two vsetvls in both output files. But in the case of the sifive-7 tuning, the two vsetvls set different vector configurations. for sifive-7 we have these: vsetvli a6,a6,e8,mf4,ta,ma vsetvli zero,a6,e32,m1,tu,ma While rocket tuning gives us: vsetvli zero,a6,e32,m1,tu,ma vsetvli zero,a7,e32,m1,tu,ma At first glance it looks like the vsetvl pass failed to unify the two vector configurations for the sifive-7 case. So that's probably the place to look (sigh, it's a fairly complex hunk of code and won't be trivial to understand/fix). Jeff