https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120297
Robin Dapp <rdapp at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |ASSIGNED --- Comment #8 from Robin Dapp <rdapp at gcc dot gnu.org> --- Ok, following the rule I mentioned above we fuse vsetvl e8,mf2,... vsetvl e64,m1,... into vsetvl e64,m4,... Individually, that's ok but we also change the new vsetvl's demand to "SEW only" even though the first original one demanded SEW >= 8 and ratio = 16. As we forget the ratio after the merge we find that the vsetvl following the merged one has ratio = 64 demand and we fuse into vsetvl e64,m1,.. which obviously doesn't have ratio = 16 any more. Testing a patch. While looking through the vsetvl dump I noticed that we use "demand SEW >= 8" when this is always true. I haven't checked if that would help us anywhere but we could use an "always true" predicate here.