AArch64 gains streaming SVE2 bit permutation instruction support.
GCC now supports the AArch64 FEAT_SSVE_BitPerm extension, enabling SVE2 bit permutation instructions in streaming mode.
This commit integrates support for the AArch64 FEAT_SSVE_BitPerm extension into GCC, which makes the FEAT_SVE2_BitPerm instructions available for use in streaming mode with Scalable Vector Extensions (SVE). This enhancement allows developers to leverage specialized bit manipulation instructions within streaming SVE contexts, potentially leading to more efficient code for certain algorithms. The changes involve updates to various configuration and instruction definition files to correctly enable and gate these instructions.
In Details
FEAT_SSVE_BitPerm is an AArch64 extension that enables the existing FEAT_SVE2_BitPerm instructions within the streaming SVE execution model. This commit updates GCC's AArch64 backend to recognize and properly gate these instructions. Key changes include modifications to aarch64-c.cc to add the __ARM_FEATURE_SSVE_BITPERM macro, aarch64-sve-builtins-sve2.def to mark existing SVE2 bit permutation intrinsics as streaming-compatible, and aarch64-sve2.md to adjust instruction gating. The TARGET_SVE2_BITPERM macro is removed and TARGET_SVE_BITPERM is updated accordingly. This is crucial…
For Context
AArch64 processors include specialized instructions for Scalable Vector Extensions (SVE) and SVE2, which allow the processor to perform operations on many data items in parallel, improving performance for tasks like signal processing or cryptography. This update adds support in GCC, a compiler, for a new feature called FEAT_SSVE_BitPerm. This feature allows specific 'bit permutation' instructions, which are specialized for rearranging bits within numbers, to be used in conjunction with the 'streaming mode' of SVE. Streaming mode is a way for SVE to handle large streams of data efficiently. Essentially, this means that programs can now use these powerful bit manipulation instructions to process data faster when working with streaming SVE on AArch64 processors that support this feature.