Attached is several trivial C functions that should compile to single ARMv5te instructions. The only ones to do so for 4.2 through 4.5 are smultt and smlatt.
arm-none-linux-gnueabi-gcc-4.5.0 -march=armv5te -O3 -S mul16.c -- Summary: GCC doesn't use 16-bit armv5te multiplies when possible Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: lessen42+gcc at gmail dot com GCC build triplet: x86_64-apple-darwin GCC host triplet: x86_64-apple-darwin GCC target triplet: arm-none-linux-gnueabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43862