https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119428
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- So the not-shift pattern was added for PR 96226 and then the BTR pattern was added for PR 96938 . And there is an odd iteration for them for QI mode. Since BTR does not have a 8bit version, only 16, 32 and 64, in this case it needs a &0x7. Otherwise you get the wrong result. the rotate/shift instructions have an implicit `&0x7` for 8bit and that is removed and that is where the confusion comes into play I think.