Skip to content

Commit

Permalink
[FMV] Remove features which can be expressed as a combination of othe…
Browse files Browse the repository at this point in the history
…r features (#353)

All of sve-bf16, sve-ebf16, and sve-i8mm are obsolete. This is already
reflected on the second column of the FMV table (we have bf16, ebf16,
and i8mm with the same Architecture name).

According to https://developer.arm.com/documentation/ddi0487/latest Arm
Architecture Reference Manual for A-profile architecture:

D23.2.72 ID_AA64ISAR1_EL1, AArch64 Instruction Set Attribute Register 1

ID_AA64ISAR1_EL1.I8MM, bits [55:52]

> When Advanced SIMD and SVE are both implemented, this field must
return
> the same value as ID_AA64ZFR0_EL1.I8MM

ID_AA64ISAR1_EL1.BF16, bits [47:44]

> When FEAT_SVE or FEAT_SME is implemented, this field must return the
> same value as ID_AA64ZFR0_EL1.BF16.

So one could write target_version("sve+bf16") or sme+bf16 instead.

There is a proposal to explicitely document FMV feature dependences in
ACLE, so that the user won't have to write long feature strings on the
attributes like sve+simd+i8mm (sve+i8mm should be enough).
  • Loading branch information
labrinea authored Dec 6, 2024
1 parent 33a0cb3 commit 11ce13e
Showing 1 changed file with 1 addition and 3 deletions.
4 changes: 1 addition & 3 deletions main/acle.md
Original file line number Diff line number Diff line change
Expand Up @@ -419,6 +419,7 @@ Armv8.4-A [[ARMARMv84]](#ARMARMv84). Support is added for the Dot Product intrin
* Unified Function Multi Versioning features memtag and memtag2.
* Unified Function Multi Versioning features aes and pmull.
* Unified Function Multi Versioning features sve2-aes and sve2-pmull128.
* Removed Function Multi Versioning features sve-bf16, sve-ebf16, and sve-i8mm.
* Removed Function Multi Versioning features ebf16, memtag3, and rpres.
* Removed Function Multi Versioning feature dgh.
* Fixed range of operand `o0` (too small) in AArch64 system register designations.
Expand Down Expand Up @@ -2807,9 +2808,6 @@ The following table lists the architectures feature mapping for AArch64
| 270 | `FEAT_I8MM` | i8mm | ```ID_AA64ISAR1_EL1.I8MM >= 0b0001``` |
| 280 | `FEAT_BF16` | bf16 | ```ID_AA64ISAR1_EL1.BF16 >= 0b0001``` |
| 310 | `FEAT_SVE` | sve | ```ID_AA64PFR0_EL1.SVE >= 0b0001``` |
| 320 | `FEAT_BF16` | sve-bf16 | ```ID_AA64ZFR0_EL1.BF16 >= 0b0001``` |
| 330 | `FEAT_EBF16` | sve-ebf16 | ```ID_AA64ZFR0_EL1.BF16 >= 0b0010``` |
| 340 | `FEAT_I8MM` | sve-i8mm | ```ID_AA64ZFR0_EL1.I8MM >= 0b00001``` |
| 350 | `FEAT_F32MM` | f32mm | ```ID_AA64ZFR0_EL1.F32MM >= 0b00001``` |
| 360 | `FEAT_F64MM` | f64mm | ```ID_AA64ZFR0_EL1.F64MM >= 0b00001``` |
| 370 | `FEAT_SVE2` | sve2 | ```ID_AA64ZFR0_EL1.SVEver >= 0b0001``` |
Expand Down

0 comments on commit 11ce13e

Please sign in to comment.