Hi, The way we were previously dealing with addressing modes for MVE was preventing the use of pre, post and offset addressing modes for the normal loads and stores, including widening and narrowing.  This patch fixes that and adds tests to ensure we are capable of using all the available addressing modes. gcc/ChangeLog: 2021-10-12  Andre Vieira          * config/arm/arm.c (thumb2_legitimate_address_p): Use VALID_MVE_MODE     when checking mve addressing modes.         (mve_vector_mem_operand): Fix the way we handle pre, post and offset     addressing modes.         (arm_print_operand): Fix printing of POST_ and PRE_MODIFY.         * config/arm/mve.md: Use mve_memory_operand predicate everywhere where     there is a single Ux constraint. gcc/testsuite/ChangeLog: 2021-10-12  Andre Vieira          * gcc.target/arm/mve/mve.exp: Make it test main directory.         * gcc.target/arm/mve/mve_load_memory_modes.c: New test.         * gcc.target/arm/mve/mve_store_memory_modes.c: New test.