https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88714
--- Comment #24 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 45438 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45438&action=edit gcc9-pr88714-poc.patch Proof of concept that fixes the short testcase. One would need to write remaining non-thumb patterns (strd in vfp.md, ldrd + strd in arm.md and ldrd + strd in iwmmxt.md, all close to the movdi patterns, unless there is a possibility to unify them (but, e.g. iwmmxt.md uses r instead of q, etc.?)) and do it always in ldrdst*.md. Not really sure about the predicates, constraints etc. either., will defer that to those familiar with the backend and architecture.