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