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
> 

Reply via email to