aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/arm
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@linaro.org>2024-12-20 20:31:29 +0000
committerChristophe Lyon <christophe.lyon@linaro.org>2025-01-09 14:51:46 +0000
commit823101941530d1aa0837f4e74436ea3e027c9241 (patch)
tree31adbe0f59bad1940e222832008bc081bbe039a0 /gcc/config/arm
parent310c8a6728cab1aa1c6816b5469ae4d603e2dfdd (diff)
downloadgcc-823101941530d1aa0837f4e74436ea3e027c9241.zip
gcc-823101941530d1aa0837f4e74436ea3e027c9241.tar.gz
gcc-823101941530d1aa0837f4e74436ea3e027c9241.tar.bz2
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.
Diffstat (limited to 'gcc/config/arm')
-rw-r--r--gcc/config/arm/arm.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index a06ac6f..73ca00a 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 \