diff options
author | Christophe Lyon <christophe.lyon@linaro.org> | 2024-12-19 16:25:59 +0000 |
---|---|---|
committer | Christophe Lyon <christophe.lyon@linaro.org> | 2024-12-20 10:37:20 +0000 |
commit | 670df03e5294a31efff1554c9a751ef893dc1f71 (patch) | |
tree | 4191a9a75094844d898f77cb66935d7e4b12eb71 /gcc/config/dragonfly.opt | |
parent | 4779dd022927c41d2c261cdf5289e8bdecd0697d (diff) | |
download | gcc-670df03e5294a31efff1554c9a751ef893dc1f71.zip gcc-670df03e5294a31efff1554c9a751ef893dc1f71.tar.gz gcc-670df03e5294a31efff1554c9a751ef893dc1f71.tar.bz2 |
arm: [MVE intrinsics] Fix moves of tuples (PR target/118131)
Commit r15-6245-g4f4e13dd235b introduced new modes for MVE tuples, but
missed adding support for them in a few places.
Adding them to the list in arm_attr_length_move_neon is not sufficient
since we later face another ICE where the compiler does not know how
to split move of such data.
The patch therefore enhances the define_splits for OI and XI moves in
neon.md, via the introduction of new iterators.
In addition, it seems consistent to update output_move_neon such that
VALID_NEON_*_MODE are used only when TARGET_NEON.
gcc/ChangeLog:
PR target/118131
* config/arm/arm.cc (output_move_neon): Check TARGET_NEON as
needed.
(arm_attr_length_move_neon): Add support for V2x and V4x MVE tuple
modes.
* config/arm/iterators.md (VSTRUCT2, VSTRUCT4): New.
* config/arm/neon.md: Use VSTRUCT2 instead of OI and VSTRUCT4
instead of XI in define_split.
Diffstat (limited to 'gcc/config/dragonfly.opt')
0 files changed, 0 insertions, 0 deletions