Commit r15-6389-g670df03e5294a3 only partially fixed support for moves
of large modes: despite the introduction of V2x* and V4x* modes in
r15-6245-g4f4e13dd235b to support MVE tuples, we still need to support
TI, OI and XI modes, which appear for instance in gcc.dg/pr100887.c.

The problem was noticed when running the testsuite with
-mthumb/-march=armv8.1-m.main+mve.fp+fp.dp/-mtune=cortex-m55/-mfloat-abi=hard/-mfpu=auto
where several tests would ICE in output_move_neon.

gcc/ChangeLog:

        PR target/118131
        * config/arm/arm.h (VALID_MVE_STRUCT_MODE): Accept TI, OI and XI
        modes again.
---
 gcc/config/arm/arm.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index b2044db938b..4246b34b6e0 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -1128,7 +1128,10 @@ extern const int arm_arch_cde_coproc_bits[];
    || (MODE) == CImode || (MODE) == XImode)
 
 #define VALID_MVE_STRUCT_MODE(MODE)                        \
-  ((MODE) == V2x16QImode                                   \
+  ((MODE) == TImode                                        \
+   || (MODE) == OImode                                     \
+   || (MODE) == XImode                                     \
+   || (MODE) == V2x16QImode                                \
    || (MODE) == V2x8HImode                                 \
    || (MODE) == V2x4SImode                                 \
    || (MODE) == V2x8HFmode                                 \
-- 
2.34.1

Reply via email to