https://gcc.gnu.org/g:823101941530d1aa0837f4e74436ea3e027c9241

commit r15-6735-g823101941530d1aa0837f4e74436ea3e027c9241
Author: Christophe Lyon <christophe.l...@linaro.org>
Date:   Fri Dec 20 20:31:29 2024 +0000

    arm: [MVE intrinsics] Another fix for moves of tuples (PR target/118131)
    
    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.

Diff:
---
 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 a06ac6f48bad..73ca00a8de35 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                                 \

Reply via email to