https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104987
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- And it is unclear to me how it could get the sign of the multiplication wrong, it is a normal SImode mul which multiplies the values of SImode r6 and r7 registers. As it isn't hipart multiply or something similar, it doesn't care about sign, it should be the same. Or are you getting a different assembly?