https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54089
--- Comment #106 from Oleg Endo <olegendo at gcc dot gnu.org> --- (In reply to Oleg Endo from comment #103) > (In reply to Alexander Klepikov from comment #102) > > Created attachment 55543 [details] > > Arithmetic right shift late expanding v2 > > > > Here's the patch. I hope I did not miss anything. > > > > Sorry, I've been busy with other things. I think your patch is OK, but I > wanted to test it in more detail before committing it. I have been looking through some of the other open issues and it seems that there are quite a couple of cases where it would be beneficial to be able to synthesize new constants during combine/split1. Perhaps it would make sense to always run the 2nd hoisting pass after combine/split1 unconditionally.