https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112415
--- Comment #43 from Jeffrey A. Law <law at gcc dot gnu.org> --- I would expect allowing larger offsets before reload to be a significant problem. The core issue is integer memory operations allow 14 bits while FP only allows 5. During reloading we don't know if any given memory reference is FP or integer. xmpyu plays a role here too since it's going to require FP registers in integer modes. But what I don't understand is why f-m-o fails to push the offset into the memory reference -- it should be conditional on the insn being recognized. And since it's after reload we know if we're doing an FP or integer load.