On 19/12/2024 16:45, Christophe Lyon wrote: > 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.
OK. R.