http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59535
--- Comment #15 from Richard Earnshaw <rearnsha at gcc dot gnu.org> --- Another testcase where the thumb1 code is poor is gcc.c-torture/execute/pr28982b.c With LRA we often get sequences such as: mov r3, sp ldr r2, .L8+16 add r3, r3, r2 // r2 dead. str r0, [r3] Instead of: ldr r2, .L8+16 add r2, r2, sp str r0, [r2] Which is both shorter and needs fewer registers.