https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109476
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu.org --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- I get _Z3mulhj: /* prologue: function */ /* frame size = 0 */ /* stack size = 0 */ .L__stack_usage = 0 mov r22,r24 mov r24,r23 ldi r23,0 ldi r25,0 rcall __mulhi3 but probably because you didn't specify the actual command to compile and I'm using the wrong subarchitecture. What probably regressed is that we're promoting the multiplication to 'int'. The same happens for the + 1 variant for me though. Can you share the -march required to have 16bit multiplication?