aarch64: Port NEON SHA512 intrinsics to pragma framework
Integrates SHA512 NEON intrinsics into GCC's pragma-based system for aarch64.
This commit ports the NEON SHA512 intrinsics, associated with the FEAT_SHA3 feature set, to GCC’s pragma-based framework for the aarch64 architecture. It adds new function declarations and bases for these cryptographic intrinsics, removes older builtin function definitions, and introduces new assembly tests to confirm their correct implementation. This change standardizes the handling of these SHA512 intrinsics within the GCC compiler.
In Details
The GCC aarch64 backend is being updated to use a consistent pragma-based framework for its NEON and other SIMD intrinsics. This commit focuses on the SHA512 intrinsics (part of FEAT_SHA3). It adds declarations and base implementations in aarch64-neon-builtins-base.cc and .def, removes redundant builtins from aarch64-simd-builtins.def, and updates the main header file arm_neon.h. New tests specifically for SHA512 intrinsics are also included to ensure functional correctness.
- aarch64
- The 64-bit ARM architecture.
- NEON
- ARM's advanced Single Instruction, Multiple Data (SIMD) architecture extension for its processors, used for accelerating multimedia and signal processing tasks.
- intrinsics
- Special functions provided by a compiler that map directly to specific hardware instructions, allowing programmers to access low-level hardware features from high-level code.
- pragma
- A directive provided by a compiler that specifies how a certain part of the code should be treated. In GCC, pragmas are often used to define built-in functions that map to hardware instructions.
- FEAT_SHA3
- A specific feature extension for the ARM architecture that includes cryptographic acceleration instructions, such as those for SHA-3 and SHA-512 hashing algorithms.
- SIMD
- Single Instruction, Multiple Data. A class of parallel computers in Flynn's taxonomy that achieves performance by processing multiple data streams with a single instruction.