https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93738
--- Comment #15 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to Kishan Parmar from comment #13) > Operand of 10 gets converted to below insn > > (and:SI (subreg:SI (lshiftrt:DI (reg:DI 129 [ x+-4 ]) > (const_int 12 [0xc])) 4) > (const_int 3840 [0xf00])) And that is not optimised. simplify-rtx should move the subreg further in, but it apparently doesn't.