https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42575
Wilco <wilco at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED Resolution|--- |FIXED --- Comment #21 from Wilco <wilco at gcc dot gnu.org> --- Fixed by r276887 and other recent multiply improvements. The only CPU that can still trigger stack pushes is cortex-a8 with -O2/O3 both for Arm and Thumb: mov ip, r0 mul r3, ip, r3 mla r1, r2, r1, r3 push {lr} umull r0, lr, r0, r2 add r1, r1, lr ldr pc, [sp], #4 All other CPUs and optimization options generate the optimal: muls r3, r0, r3 mla r1, r2, r1, r3 umull r0, r2, r0, r2 add r1, r1, r2 bx lr So I consider this fixed.