" option %<-march%>, or by using the %<target%>"
" attribute or pragma", "sme");
opts->x_target_flags &= ~MASK_GENERAL_REGS_ONLY;
- auto new_flags = (isa_flags
- | feature_deps::SME ().enable
- /* TODO: Remove once we support SME without SVE2. */
- | feature_deps::SVE2 ().enable);
+ auto new_flags = isa_flags | feature_deps::SME ().enable;
aarch64_set_asm_isa_flags (opts, new_flags);
}
& AARCH64_EXTRA_TUNE_DISPATCH_SCHED)
gcc_assert (aarch64_tune_params.dispatch_constraints != NULL);
- /* TODO: SME codegen without SVE2 is not supported, once this support is added
- remove this 'sorry' and the implicit enablement of SVE2 in the checks for
- streaming mode above in this function. */
- if (TARGET_SME && !TARGET_SVE2)
- sorry ("no support for %qs without %qs", "sme", "sve2");
-
/* Set scalar costing to a high value such that we always pick
vectorization. Increase scalar costing by 10000%. */
if (opts->x_flag_aarch64_max_vectorization)
Enable the shorter compare and branch instructions, @code{cbb}, @code{cbh} and
@code{cb}.
@item sme
-Enable the Scalable Matrix Extension. This is only supported when SVE2 is also
-enabled.
+Enable the Scalable Matrix Extension.
@item sme-i16i64
Enable the FEAT_SME_I16I64 extension to SME. This also enables SME
instructions.
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-skip-if "Do not override mcpu or march" { *-*-* } { -mcpu=* -march=* } { "" } } */
-/* { dg-options { "-march=armv8-a+sme" } } */
-/* { dg-message "sorry, unimplemented: no support for 'sme' without 'sve2'" "" { target *-*-* } 0 } */
-int main (void)
-{
- return 0;
-}
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-skip-if "Do not override mcpu or march" { *-*-* } { -mcpu=* -march=* } { "" } } */
-/* { dg-options { "-march=armv8-a" } } */
-/* { dg-message "sorry, unimplemented: no support for 'sme' without 'sve2'" "" { target *-*-* } 0 } */
-
-#pragma GCC target "+sme"
-
-int main (void)
-{
- return 0;
-}