https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69299
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Maybe we really need to have two types of memory constraints, ones which can be worst case always satisfied by reloading their address into an address register and another ones which can be worst case always satisfied by loading the memory into a temporary register (for loads) or storing it from a temporary register. Or consider the constraint as CT_MEMORY only if the operand satisfies the constraint predicate and as CT_FIXED_FORM (or whatever is the default) otherwise? Only normal CT_MEMORY, for Bm as long as it satisfies memory_operand, the exact address form doesn't really matters, but what matters is something inherent in the memory (and ISA flags).