aarch64_def_or_undef (TARGET_AES && TARGET_SHA2, "__ARM_FEATURE_CRYPTO", pfile);
aarch64_def_or_undef (TARGET_SIMD_RDMA, "__ARM_FEATURE_QRDMX", pfile);
- aarch64_def_or_undef (TARGET_SVE, "__ARM_FEATURE_SVE", pfile);
+ aarch64_def_or_undef (AARCH64_HAVE_ISA (SVE), "__ARM_FEATURE_SVE", pfile);
cpp_undef (pfile, "__ARM_FEATURE_SVE_BITS");
cpp_undef (pfile, "__ARM_FEATURE_SVE_VECTOR_OPERATORS");
cpp_undef (pfile, "__ARM_FEATURE_SVE_PREDICATE_OPERATORS");
aarch64_def_or_undef (TARGET_SVE_F64MM,
"__ARM_FEATURE_SVE_MATMUL_FP64", pfile);
aarch64_def_or_undef (AARCH64_HAVE_ISA (SVE_B16B16)
- && (TARGET_SVE2 || TARGET_SME2),
+ && (AARCH64_HAVE_ISA (SVE2) || TARGET_SME2),
"__ARM_FEATURE_SVE_B16B16", pfile);
- aarch64_def_or_undef (TARGET_SVE2, "__ARM_FEATURE_SVE2", pfile);
+ aarch64_def_or_undef (AARCH64_HAVE_ISA (SVE2), "__ARM_FEATURE_SVE2", pfile);
aarch64_def_or_undef (TARGET_SVE2_AES, "__ARM_FEATURE_SVE2_AES", pfile);
aarch64_def_or_undef (TARGET_SVE2_BITPERM,
"__ARM_FEATURE_SVE2_BITPERM", pfile);
/* Neoverse V1 is the only core that is known to benefit from
AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS. There is therefore no
point enabling it for SVE2 and above. */
- if (TARGET_SVE2)
+ if (TARGET_SVE2 || TARGET_SME)
current_tune.extra_tuning_flags
&= ~AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS;
if (!AARCH64_HAVE_ISA(V8_8A))
/* Dot Product is an optional extension to AdvSIMD enabled through +dotprod. */
#define TARGET_DOTPROD AARCH64_HAVE_ISA (DOTPROD)
-/* SVE instructions, enabled through +sve. */
-#define TARGET_SVE AARCH64_HAVE_ISA (SVE)
+/* SVE instructions, enabled in non-streaming mode through +sve. */
+#define TARGET_SVE (AARCH64_HAVE_ISA (SVE) || TARGET_STREAMING)
-/* SVE2 instructions, enabled through +sve2. */
-#define TARGET_SVE2 AARCH64_HAVE_ISA (SVE2)
+/* SVE2 instructions, enabled in non-streaming mode through +sve2. */
+#define TARGET_SVE2 (AARCH64_HAVE_ISA (SVE2) || TARGET_STREAMING)
/* SVE2 AES instructions, enabled through +sve2-aes. */
#define TARGET_SVE2_AES (AARCH64_HAVE_ISA (SVE2) \