Hi Andre, > On 2 Oct 2024, at 19:13, Andre Vieira <andre.simoesdiasvie...@arm.com> wrote: > > External email: Use caution opening links or attachments > > > This patch series removes the requirement of SVE2 for SME, so when a user > passes +sme, SVE2 is not enabled as a result of that. > We do this to be compliant with the ISA and behave in a compatible manner to > other toolchains, to prevent unexpected behavior when switching between them. > > However, for the time being we diagnose the use of SME without SVE2 as > unsupported, we suspect that the backend correctly enables and disables the > right instructions given the options, but we believe that for certain codegen > there are assumptions that SVE & SVE2 is present when using SME. Before we > fully support this combination we should investigate these.
Is that something you intend to do for GCC 15.1? I’m not a fan of the warning in patch [2/2]. If the compiler is at risk of crashing, generating wrong code, or emitting SVE code in non-streaming regions or other such violations then we should mark it as unsupported with an error. Usually diagnostics about “I could support it but I don’t” use the sorry () API for this reason. Thanks, Kyrill > > The patch series also refactors the FCMA/COMPNUM/TARGET_COMPLEX feature to > separate it from Armv8.3-A feature set. > > Andre Vieira (2) > aarch64: Split FCMA feature bit from Armv8.3-A > aarch64: remove SVE2 requirement from SME and diagnose it as unsupported > > Regression tested on aarch64-none-linux-gnu. > > OK for trunk? > > Andre Vieira (2): > aarch64: Split FCMA feature bit from Armv8.3-A > aarch64: remove SVE2 requirement from SME and diagnose it as unsupported > > gcc/config/aarch64/aarch64-arches.def | 2 +- > gcc/config/aarch64/aarch64-option-extensions.def | 4 +++- > gcc/config/aarch64/aarch64.cc | 4 ++++ > gcc/config/aarch64/aarch64.h | 2 +- > .../aarch64/sve/acle/general-c/binary_int_opt_single_n_2.c | 2 +- > .../aarch64/sve/acle/general-c/binary_opt_single_n_2.c | 2 +- > .../gcc.target/aarch64/sve/acle/general-c/binary_single_1.c | 2 +- > .../gcc.target/aarch64/sve/acle/general-c/binaryxn_2.c | 2 +- > gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/clamp_1.c | 2 +- > .../aarch64/sve/acle/general-c/compare_scalar_count_1.c | 2 +- > .../aarch64/sve/acle/general-c/shift_right_imm_narrowxn_1.c | 2 +- > .../gcc.target/aarch64/sve/acle/general-c/storexn_1.c | 2 +- > .../aarch64/sve/acle/general-c/ternary_qq_or_011_lane_1.c | 2 +- > .../gcc.target/aarch64/sve/acle/general-c/unary_convertxn_1.c | 2 +- > .../gcc.target/aarch64/sve/acle/general-c/unaryxn_1.c | 2 +- > 15 files changed, 20 insertions(+), 14 deletions(-) > > -- > 2.25.1 >