https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99581
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Rather than a target hook, isn't it a property of a particular constraint? This constraint implies "m", this one doesn't? Make the implies "m" behavior the default one and add some syntax in the *.md files to declare constraints that have the new behavior? Kind like define_memory_constraint vs. define_special_memory_constraint difference.