Why the Cortex M4 instruction SMMUL (32 = 32 x 32b) preserves a redundant sign bit and discards one useful bit of information? What could possibly be the justification for such blatant disregard of the ISO/IEC TR 18037 standard Fract format?
The examples in Cortex-M4 Devices Generic User Guide, 3.6.8. SMMUL use SMULL instead of SMMUL.