https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87763
--- Comment #43 from Jeffrey A. Law <law at redhat dot com> --- The problem with your suggestions Segher is that we'd have to do them for every target which defines insns with a zero_extract destination and that's been the well understood way to handle this stuff for over 2 decades. Improving combine avoids that problem. Of course we have to balance the pros/cons of any patch in that space as well which is hard to do without an official patch to evaluate. What I've got is just proof of concept for the most common case, but it does show some promise. Also note that Steve's patch just addresses combine_bfi IIUC. My POC addresses insv_?.c as well as the existing combine_bfi test (but I haven't tested it against the deeper tests in Steve's patch.