PR target/54816 is now fixed on mainline. This adds a test case to check that it doesn't regress in future. Tested with a cross compiler to avr-elf. Committed as obvious.
2023-04-16 Roger Sayle <ro...@nextmovesoftware.com> gcc/testsuite/ChangeLog PR target/54816 * gcc.target/avr/pr54816.c: New test case.
diff --git a/gcc/testsuite/gcc.target/avr/pr54816.c b/gcc/testsuite/gcc.target/avr/pr54816.c new file mode 100644 index 0000000..56be780 --- /dev/null +++ b/gcc/testsuite/gcc.target/avr/pr54816.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-options "-Os -mmcu=atmega8" } */ +int wmul (char a, char b) +{ + return a * (char) (b << 3); +} + +/* { dg-final { scan-assembler-times "lsl" 3 } } */ +/* { dg-final { scan-assembler-times "muls" 1 } } */