AArch64: Add __ARM_FEATURE_ macros for SVE2.2 and SME2.2.
The compiler now defines `__ARM_FEATURE_` macros for the SVE2.2 and SME2.2 extensions on AArch64.
This commit introduces the __ARM_FEATURE_ macros for the Scalable Vector Extension 2.2 (SVE2.2) and Scalable Matrix Extension 2.2 (SME2.2) on AArch64. These macros allow code to detect the presence of these extensions at compile time, enabling conditional compilation of code that utilizes SVE2.2 and SME2.2 features. The patch also includes new tests to verify the correct definition of these macros.
In Details
This patch modifies aarch64-c.cc to emit definitions for __ARM_FEATURE_{SVE,SME}2p2. It adds tests in pragma_cpp_predefs_3.c and pragma_cpp_predefs_4.c to verify the macro definitions. These macros are used to conditionally enable SVE2.2 and SME2.2 features at compile time.
For Context
This commit adds support for the latest versions of the Scalable Vector Extension (SVE) and Scalable Matrix Extension (SME) on the AArch64 architecture. SVE and SME are instruction set extensions that allow for more efficient vector and matrix operations, which are important for tasks like signal processing, image processing, and machine learning. Defining __ARM_FEATURE_ macros allows developers to write code that can automatically take advantage of these extensions if they are available on the target processor.