Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[FMV] Unify aes with pmull and sve2-aes with sve2-pmull128.
I originally tried splitting these features (see relevant pull reguest llvm/llvm-project#110816), but the following came to my attention: According to https://developer.arm.com/documentation/ddi0487/latest Arm Architecture Reference Manual for A-profile architecture: D23.2.83 ID_AA64ZFR0_EL1, SVE Feature ID Register 0 ID_AA64ZFR0_EL1.AES, bits [7:4] > FEAT_SVE_AES implements the functionality identified by the value 0b0001. > FEAT_SVE_PMULL128 implements the functionality identified by the value 0b0010. > The permitted values are 0b0000 and 0b0010. Andrew Carlotti suggests that the same applies for ID_AA64ISAR0_EL1.AES (llvm/llvm-project#110816 (comment)) D19.2.61 ID_AA64ISAR0_EL1, AArch64 Instruction Set Attribute Register 0 ID_AA64ISAR0_EL1.AES, bits [7:4] > FEAT_AES implements the functionality identified by the value 0b0001. > FEAT_PMULL implements the functionality identified by the value 0b0010. > From Armv8, the permitted values are 0b0000 and 0b0010. This was removed from the latest release of the Arm Architecture Reference Manual, but it appears to be a mistake that was not intended to relax the architecture constraints. The discrepancy has been reported.
- Loading branch information