From 112aa10da613aa158f6884caffd94fd820ac7770 Mon Sep 17 00:00:00 2001 From: Nikolay Simakov Date: Mon, 20 Oct 2025 21:33:18 -0400 Subject: [PATCH 1/2] Add Arm Ampere One support. Named the targets as ampere1 and ampere1a, like the -mcpu option in GCC --- cpu/microarchitectures.json | 209 ++++++++++++++++++++++- tests/targets/linux-ubuntu22.04-ampere1 | 8 + tests/targets/linux-ubuntu22.04-ampere1a | 10 ++ 3 files changed, 226 insertions(+), 1 deletion(-) create mode 100644 tests/targets/linux-ubuntu22.04-ampere1 create mode 100644 tests/targets/linux-ubuntu22.04-ampere1a diff --git a/cpu/microarchitectures.json b/cpu/microarchitectures.json index 6d69dd1..028afe3 100644 --- a/cpu/microarchitectures.json +++ b/cpu/microarchitectures.json @@ -3556,6 +3556,212 @@ }, "cpupart": "0xd49" }, + "ampere1": { + "from": [ + "neoverse_n1", + "armv8.6a" + ], + "vendor": "Ampere", + "features": [ + "fp", + "asimd", + "evtstrm", + "aes", + "pmull", + "sha1", + "sha2", + "crc32", + "atomics", + "fphp", + "asimdhp", + "cpuid", + "asimdrdm", + "jscvt", + "fcma", + "lrcpc", + "dcpop", + "sha3", + "asimddp", + "sha512", + "asimdfhm", + "dit", + "uscat", + "ilrcpc", + "flagm", + "ssbs", + "sb", + "paca", + "pacg", + "dcpodp", + "flagm2", + "frint", + "i8mm", + "bf16", + "rng", + "bti", + "ecv" + ], + "compilers": { + "gcc": [ + { + "versions": "9.0:10.4.99", + "flags": "-mcpu=neoverse-n1" + }, + { + "versions": "10.5:10.99", + "flags": "-mcpu=ampere1" + }, + { + "versions": "11.0:11.2.99", + "flags": "-mcpu=neoverse-n1" + }, + { + "versions": "11.3:11.99", + "flags": "-mcpu=ampere1" + }, + { + "versions": "12.0:12.0.99", + "flags": "-mcpu=neoverse-n1" + }, + { + "versions": "12.1:12.99", + "flags": "-mcpu=ampere1" + }, + { + "versions": "13:", + "flags": "-mcpu=ampere1" + } + ], + "clang": [ + { + "versions": "10:", + "flags": "-mcpu=neoverse-n1" + }, + { + "versions": "16:", + "flags": "-mcpu=ampere1" + } + ], + "arm": [ + { + "versions": "22:", + "flags": "-mcpu=neoverse-n1" + } + ], + "nvhpc": [ + { + "versions": "22.5:", + "name": "neoverse-n1", + "flags": "-tp {name}" + } + ] + }, + "cpupart": "0xac3" + }, + "ampere1a": { + "from": [ + "neoverse_n1", + "armv8.6a" + ], + "vendor": "Ampere", + "features": [ + "fp", + "asimd", + "evtstrm", + "aes", + "pmull", + "sha1", + "sha2", + "crc32", + "atomics", + "fphp", + "asimdhp", + "cpuid", + "asimdrdm", + "jscvt", + "fcma", + "lrcpc", + "dcpop", + "sha3", + "sm3", + "sm4", + "asimddp", + "sha512", + "asimdfhm", + "dit", + "uscat", + "ilrcpc", + "flagm", + "ssbs", + "sb", + "paca", + "pacg", + "dcpodp", + "flagm2", + "frint", + "i8mm", + "bf16", + "rng", + "bti", + "ecv" + ], + "compilers": { + "gcc": [ + { + "versions": "9.0:10.4.99", + "flags": "-mcpu=neoverse-n1" + }, + { + "versions": "10.5:10.99", + "flags": "-mcpu=ampere1a" + }, + { + "versions": "11.0:11.3.99", + "flags": "-mcpu=neoverse-n1" + }, + { + "versions": "11.4:11.99", + "flags": "-mcpu=ampere1a" + }, + { + "versions": "12.0:12.2.99", + "flags": "-mcpu=neoverse-n1" + }, + { + "versions": "12.3:12.99", + "flags": "-mcpu=ampere1a" + }, + { + "versions": "13:", + "flags": "-mcpu=ampere1a" + } + ], + "clang": [ + { + "versions": "10:", + "flags": "-mcpu=neoverse-n1" + }, + { + "versions": "16:", + "flags": "-mcpu=ampere1" + } + ], + "arm": [ + { + "versions": "22:", + "flags": "-mcpu=neoverse-n1" + } + ], + "nvhpc": [ + { + "versions": "22.5:", + "name": "neoverse-n1", + "flags": "-tp {name}" + } + ] + }, + "cpupart": "0xac4" + }, "m1": { "from": [ "armv8.4a" @@ -4038,7 +4244,8 @@ "0x61": "Apple", "0x66": "Faraday", "0x68": "HXT", - "0x69": "Intel" + "0x69": "Intel", + "0xc0": "Ampere" }, "darwin_flags": { "sse4.1": "sse4_1", diff --git a/tests/targets/linux-ubuntu22.04-ampere1 b/tests/targets/linux-ubuntu22.04-ampere1 new file mode 100644 index 0000000..c5108d4 --- /dev/null +++ b/tests/targets/linux-ubuntu22.04-ampere1 @@ -0,0 +1,8 @@ +processor : 0 +BogoMIPS : 50.00 +Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb paca pacg dcpodp flagm2 frint i8mm bf16 rng bti ecv +CPU implementer : 0xc0 +CPU architecture: 8 +CPU variant : 0x0 +CPU part : 0xac3 +CPU revision : 1 diff --git a/tests/targets/linux-ubuntu22.04-ampere1a b/tests/targets/linux-ubuntu22.04-ampere1a new file mode 100644 index 0000000..63a5c8d --- /dev/null +++ b/tests/targets/linux-ubuntu22.04-ampere1a @@ -0,0 +1,10 @@ +processor : 0 +BogoMIPS : 2000.00 +Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm js +cvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb paca pacg +dcpodp flagm2 frint i8mm bf16 rng bti ecv +CPU implementer : 0xc0 +CPU architecture: 8 +CPU variant : 0x0 +CPU part : 0xac4 +CPU revision : 0 From 53d9aad7a19f43623b20195fe9100be26c001954 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Wed, 29 Apr 2026 08:04:31 +0200 Subject: [PATCH 2/2] Make features a single line --- tests/targets/linux-ubuntu22.04-ampere1a | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/targets/linux-ubuntu22.04-ampere1a b/tests/targets/linux-ubuntu22.04-ampere1a index 63a5c8d..e805de1 100644 --- a/tests/targets/linux-ubuntu22.04-ampere1a +++ b/tests/targets/linux-ubuntu22.04-ampere1a @@ -1,8 +1,6 @@ processor : 0 BogoMIPS : 2000.00 -Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm js -cvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb paca pacg -dcpodp flagm2 frint i8mm bf16 rng bti ecv +Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb paca pacg dcpodp flagm2 frint i8mm bf16 rng bti ecv CPU implementer : 0xc0 CPU architecture: 8 CPU variant : 0x0