http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52294
--- Comment #2 from Richard Earnshaw <rearnsha at gcc dot gnu.org> 2012-02-17 23:22:41 UTC --- Confirmed. lsls Rd, Rn, Rm is only 2 bytes in size if Rd == Rn Although the testcase only fails on trunk, the miscalculation is certain to be present on all maintained branches.