From a3429a7adef69fae71956a7cd2e4027c3b9a6d9c Mon Sep 17 00:00:00 2001 From: Pavel Iliin Date: Mon, 27 Nov 2023 22:53:25 +0000 Subject: [PATCH 1/4] [FMV] Adjust features priorities and add alternative names. --- main/acle.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/main/acle.md b/main/acle.md index ca02380a..e5dd19d7 100644 --- a/main/acle.md +++ b/main/acle.md @@ -360,6 +360,9 @@ Armv8.4-A [[ARMARMv84]](#ARMARMv84). Support is added for the Dot Product intrin to use keyword attributes instead of GNU-style attributes. * Added missing word to Function Multi Versioning's [Name mangling](#name-mangling). * Added description of SVE reinterpret intrinsics. +* Fixes for [Function Multi Versioning](#function-multi-versioning): + * Align priorities to account for feature dependencies. + * Introduce alternative names (aliases) `rdma` for `rdm`, `compnum` for `fcma`. ### References @@ -2519,10 +2522,10 @@ The following table lists the architectures feature mapping for AArch64 | 10 | `FEAT_RNG` | rng | ```ID_AA64ISAR0_EL1.RNDR == 0b0001``` | | 20 | `FEAT_FlagM` | flagm | ```ID_AA64ISAR0_EL1.TS == 0b0001 OR ```
```ID_AA64ISAR0_EL1.TS == 0b0010``` | | 30 | `FEAT_FlagM2` | flagm2 | ```ID_AA64ISAR0_EL1.TS == 0b0010``` | - | 40 | `FEAT_FHM` | fp16fml | ```ID_AA64ISAR0_EL1.FHM == 0b0001``` | - | 50 | `FEAT_DotProd` | dotprod | ```ID_AA64ISAR0_EL1.DP == 0b0001``` | - | 60 | `FEAT_SM3`, `FEAT_SM4` | sm4 | ```ID_AA64ISAR0_EL1.SM4 == 0b0001 AND ```
```ID_AA64ISAR0_EL1.SM3 == 0b0001``` | - | 70 | `FEAT_RDM` | rdm | ```ID_AA64ISAR0_EL1.RDM == 0b0001``` | + | 175 | `FEAT_FHM` | fp16fml | ```ID_AA64ISAR0_EL1.FHM == 0b0001``` | + | 104 | `FEAT_DotProd` | dotprod | ```ID_AA64ISAR0_EL1.DP == 0b0001``` | + | 106 | `FEAT_SM3`, `FEAT_SM4` | sm4 | ```ID_AA64ISAR0_EL1.SM4 == 0b0001 AND ```
```ID_AA64ISAR0_EL1.SM3 == 0b0001``` | + | 108 | `FEAT_RDM` | rdm, rdma | ```ID_AA64ISAR0_EL1.RDM == 0b0001``` | | 80 | `FEAT_LSE` | lse | ```ID_AA64ISAR0_EL1.Atomic == 0b0001``` | | 90 | Floating-point | fp | ```ID_AA64PFR0_EL1.FP != 0b1111``` | | 100 | `FEAT_AdvSIMD` | simd | ```ID_AA64PFR0_EL1.AdvSIMD != 0b1111``` | @@ -2537,7 +2540,7 @@ The following table lists the architectures feature mapping for AArch64 | 190 | `FEAT_DPB` | dpb | ```ID_AA64ISAR1_EL1.DPB >= 0b0001``` | | 200 | `FEAT_DPB2` | dpb2 | ```ID_AA64ISAR1_EL1.DPB == 0b0010``` | | 210 | `FEAT_JSCVT` | jscvt | ```ID_AA64ISAR1_EL1.JSCVT == 0b0001``` | - | 220 | `FEAT_FCMA` | fcma | ```ID_AA64ISAR1_EL1.FCMA == 0b0001``` | + | 220 | `FEAT_FCMA` | fcma, compnum | ```ID_AA64ISAR1_EL1.FCMA == 0b0001``` | | 230 | `FEAT_LRCPC` | rcpc | ```ID_AA64ISAR1_EL1.LRCPC != 0b0000``` | | 240 | `FEAT_LRCPC2` | rcpc2 | ```ID_AA64ISAR1_EL1.LRCPC == 0b0010``` | | 241 | `FEAT_LRCPC3` | rcpc3 | ```ID_AA64ISAR1_EL1.LRCPC == 0b0011``` | From 15cdd53caa46882798d141086787e390d0f8de4f Mon Sep 17 00:00:00 2001 From: Pavel Iliin Date: Mon, 11 Dec 2023 22:16:42 +0000 Subject: [PATCH 2/4] [FMV] Order features table by priority. --- main/acle.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/main/acle.md b/main/acle.md index e5dd19d7..a1eead30 100644 --- a/main/acle.md +++ b/main/acle.md @@ -2522,13 +2522,12 @@ The following table lists the architectures feature mapping for AArch64 | 10 | `FEAT_RNG` | rng | ```ID_AA64ISAR0_EL1.RNDR == 0b0001``` | | 20 | `FEAT_FlagM` | flagm | ```ID_AA64ISAR0_EL1.TS == 0b0001 OR ```
```ID_AA64ISAR0_EL1.TS == 0b0010``` | | 30 | `FEAT_FlagM2` | flagm2 | ```ID_AA64ISAR0_EL1.TS == 0b0010``` | - | 175 | `FEAT_FHM` | fp16fml | ```ID_AA64ISAR0_EL1.FHM == 0b0001``` | - | 104 | `FEAT_DotProd` | dotprod | ```ID_AA64ISAR0_EL1.DP == 0b0001``` | - | 106 | `FEAT_SM3`, `FEAT_SM4` | sm4 | ```ID_AA64ISAR0_EL1.SM4 == 0b0001 AND ```
```ID_AA64ISAR0_EL1.SM3 == 0b0001``` | - | 108 | `FEAT_RDM` | rdm, rdma | ```ID_AA64ISAR0_EL1.RDM == 0b0001``` | | 80 | `FEAT_LSE` | lse | ```ID_AA64ISAR0_EL1.Atomic == 0b0001``` | | 90 | Floating-point | fp | ```ID_AA64PFR0_EL1.FP != 0b1111``` | | 100 | `FEAT_AdvSIMD` | simd | ```ID_AA64PFR0_EL1.AdvSIMD != 0b1111``` | + | 104 | `FEAT_DotProd` | dotprod | ```ID_AA64ISAR0_EL1.DP == 0b0001``` | + | 106 | `FEAT_SM3`, `FEAT_SM4` | sm4 | ```ID_AA64ISAR0_EL1.SM4 == 0b0001 AND ```
```ID_AA64ISAR0_EL1.SM3 == 0b0001``` | + | 108 | `FEAT_RDM` | rdm, rdma | ```ID_AA64ISAR0_EL1.RDM == 0b0001``` | | 110 | `FEAT_CRC32` | crc | ```ID_AA64ISAR0_EL1.CRC32 == 0b0001``` | | 120 | `FEAT_SHA1` | sha1 | ```ID_AA64ISAR0_EL1.SHA1 == 0b0001``` | | 130 | `FEAT_SHA256` | sha2 | ```ID_AA64ISAR0_EL1.SHA2 == 0b0001``` | @@ -2536,6 +2535,7 @@ The following table lists the architectures feature mapping for AArch64 | 150 | `FEAT_AES` | aes | ```ID_AA64ISAR0_EL1.AES >= 0b0001``` | | 160 | `FEAT_PMULL` | pmull | ```ID_AA64ISAR0_EL1.AES == 0b0010``` | | 170 | `FEAT_FP16` | fp16 | ```ID_AA64PFR0_EL1.FP == 0b0001``` | + | 175 | `FEAT_FHM` | fp16fml | ```ID_AA64ISAR0_EL1.FHM == 0b0001``` | | 180 | `FEAT_DIT` | dit | ```ID_AA64PFR0_EL1.DIT == 0b0001``` | | 190 | `FEAT_DPB` | dpb | ```ID_AA64ISAR1_EL1.DPB >= 0b0001``` | | 200 | `FEAT_DPB2` | dpb2 | ```ID_AA64ISAR1_EL1.DPB == 0b0010``` | From 343eb9fa013dbfc37dabb7f882c471cf00fad0a8 Mon Sep 17 00:00:00 2001 From: Pavel Iliin Date: Mon, 8 Jan 2024 16:47:36 +0000 Subject: [PATCH 3/4] [FMV] Remove compnum alias. --- main/acle.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main/acle.md b/main/acle.md index a1eead30..ebd90ab9 100644 --- a/main/acle.md +++ b/main/acle.md @@ -362,7 +362,7 @@ Armv8.4-A [[ARMARMv84]](#ARMARMv84). Support is added for the Dot Product intrin * Added description of SVE reinterpret intrinsics. * Fixes for [Function Multi Versioning](#function-multi-versioning): * Align priorities to account for feature dependencies. - * Introduce alternative names (aliases) `rdma` for `rdm`, `compnum` for `fcma`. + * Introduce alternative names (aliases) `rdma` for `rdm`. ### References @@ -2540,7 +2540,7 @@ The following table lists the architectures feature mapping for AArch64 | 190 | `FEAT_DPB` | dpb | ```ID_AA64ISAR1_EL1.DPB >= 0b0001``` | | 200 | `FEAT_DPB2` | dpb2 | ```ID_AA64ISAR1_EL1.DPB == 0b0010``` | | 210 | `FEAT_JSCVT` | jscvt | ```ID_AA64ISAR1_EL1.JSCVT == 0b0001``` | - | 220 | `FEAT_FCMA` | fcma, compnum | ```ID_AA64ISAR1_EL1.FCMA == 0b0001``` | + | 220 | `FEAT_FCMA` | fcma | ```ID_AA64ISAR1_EL1.FCMA == 0b0001``` | | 230 | `FEAT_LRCPC` | rcpc | ```ID_AA64ISAR1_EL1.LRCPC != 0b0000``` | | 240 | `FEAT_LRCPC2` | rcpc2 | ```ID_AA64ISAR1_EL1.LRCPC == 0b0010``` | | 241 | `FEAT_LRCPC3` | rcpc3 | ```ID_AA64ISAR1_EL1.LRCPC == 0b0011``` | From 137d2cf8c8ad683056c053c2013c60a8b90bf43e Mon Sep 17 00:00:00 2001 From: Pavel Iliin Date: Mon, 22 Jan 2024 12:26:44 +0000 Subject: [PATCH 4/4] Update main/acle.md Co-authored-by: Dani --- main/acle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/acle.md b/main/acle.md index f8433ba8..628fa938 100644 --- a/main/acle.md +++ b/main/acle.md @@ -360,7 +360,7 @@ Armv8.4-A [[ARMARMv84]](#ARMARMv84). Support is added for the Dot Product intrin to use keyword attributes instead of GNU-style attributes. * Added missing word to Function Multi Versioning's [Name mangling](#name-mangling). * Added description of SVE reinterpret intrinsics. -* Fixes for [Function Multi Versioning](#function-multi-versioning): +* Changes and fixes for [Function Multi Versioning](#function-multi-versioning): * Added [MOPS](#memcpy-family-of-operations-intrinsics---mops). * Align priorities to account for feature dependencies. * Introduce alternative names (aliases) `rdma` for `rdm`.