https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117726
--- Comment #5 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Georg-Johann Lay <g...@gcc.gnu.org>: https://gcc.gnu.org/g:d203f4cb968a1dc45c7fcd1bf5d7cd485ca6f510 commit r15-5892-gd203f4cb968a1dc45c7fcd1bf5d7cd485ca6f510 Author: Georg-Johann Lay <a...@gjlay.de> Date: Mon Dec 2 12:31:18 2024 +0100 AVR: Tweak uin8_t << 6 and uint8_t >> 6 shifts. Logic 8-bit shifts with an offset of 6 can be improved by supporting them as 3-operand operations. PR target/117726 gcc/ * config/avr/avr-passes.cc (avr_emit_shift): All 8-bit shifts with an offset of 6 have 3-operand alternatives. * config/avr/avr.cc (ashlqi3_out, lshrqi3_out) [case 6]: Implement as 3-operand insn. (avr_rtx_costs_1) [QImode, ASHIFT + LSHIFTRT]: Adjust costs for offset of 6. * config/avr/avr.md (*ashlqi3_split, *ashlqi3) (*lshrqi3_split, *lshrqi3): Add "r,r,C06" alternative.