https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87763
--- Comment #49 from Jeffrey A. Law <law at redhat dot com> --- I think the insv_1 (and it's closely related insv_2) regressions can be fixed by a single ior/and pattern in the backend or by hacking up combine a bit. I'm still playing with the latter, but may have to put it on the back burner because of the pain of note management :( Hoping to draw a conclusion on that by the end of this week. If I can't get a clean combine solution, then my recommendation would be to build the suitable backend pattern. It just has to match stuff like (set (reg1) (ior (and (reg2) ...)) with a matching constraint on reg1 and reg2 to ensure it's a RMW operand.