]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
arm: [MVE intrinsics] Another fix for moves of tuples (PR target/118131)
authorChristophe Lyon <christophe.lyon@linaro.org>
Fri, 20 Dec 2024 20:31:29 +0000 (20:31 +0000)
committerChristophe Lyon <christophe.lyon@linaro.org>
Thu, 9 Jan 2025 14:51:46 +0000 (14:51 +0000)
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

index a06ac6f48badebdf4fab28a5dfcfd7db02985dd0..73ca00a8de35f088f174c30b61f0ed1b47003746 100644 (file)
@@ -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                                 \