https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106594
--- Comment #13 from Segher Boessenkool <segher at gcc dot gnu.org> --- Hi! Either this should not be P1, or the proposed patch is taking completely the wrong direction. P1 means there is a regression. There is no regression in combine, in fact the proposed patch would *cause* regressions on many targets! I certainly welcome making the compound_operation stuff behave better, but the key point there is *better*, random changes that have not been tested on most archs (and will likely regress on many) are not okay. This is stage 1 material no matter what. Maybe we need some new target macros saying to not use two shifts, and/or zero_extract, or sign_extract, etc. No machine newer than VAX (or was it PDP?) has real hardware support for that, we are much better off expressing things with machine instructions that *do* exist only.