Features/expand microarch for aarch64 (#13780)

* Add process to determine aarch64 microarchitecture

* add microarchitectures for thunderx2 and a64fx

* Add optimize flags for gcc on aarch64 family processors thunderx2 and a64fx.

* Add optimize flags for clang on aarch64 family processors thunderx2 and a64fx

* Add testing for thunderx2 and a64fx microarchitectures
This commit is contained in:
t-karatsu
2019-11-20 16:01:12 +09:00
committed by Greg Becker
parent f25a4ab089
commit 513fe55fc3
4 changed files with 117 additions and 0 deletions

View File

@@ -223,3 +223,15 @@ def compatibility_check_for_x86_64(info, target):
return (target == arch_root or arch_root in target.ancestors) \
and (target.vendor == vendor or target.vendor == 'generic') \
and target.features.issubset(features)
@compatibility_check(architecture_family='aarch64')
def compatibility_check_for_aarch64(info, target):
basename = 'aarch64'
features = set(info.get('Features', '').split())
vendor = info.get('CPU implementer', 'generic')
arch_root = targets[basename]
return (target == arch_root or arch_root in target.ancestors) \
and (target.vendor == vendor or target.vendor == 'generic') \
and target.features.issubset(features)

View File

@@ -1161,6 +1161,97 @@
}
}
},
"thunderx2": {
"from": "aarch64",
"vendor": "0x43",
"features": [
"fp",
"asimd",
"evtstrm",
"aes",
"pmull",
"sha1",
"sha2",
"crc32",
"atomics",
"cpuid",
"asimdrdm"
],
"compilers": {
"gcc": [
{
"versions": "4.8:4.8.9",
"flags": "-march=armv8-a"
},
{
"versions": "4.9:5.9",
"flags": "-march=armv8-a+crc+crypto"
},
{
"versions": "6:6.9",
"flags": "-march=armv8.1-a+crc+crypto"
},
{
"versions": "7:",
"flags": "-mcpu=thunderx2t99"
}
],
"clang": {
"versions": ":",
"flags": "-march=armv8-a -mcpu=generic"
}
}
},
"a64fx": {
"from": "aarch64",
"vendor": "0x46",
"features": [
"fp",
"asimd",
"evtstrm",
"aes",
"pmull",
"sha1",
"sha2",
"crc32",
"atomics",
"cpuid",
"asimdrdm",
"fphp",
"asimdhp",
"fcma",
"dcpop",
"sve"
],
"compilers": {
"gcc": [
{
"versions": "4.8:4.8.9",
"flags": "-march=armv8-a"
},
{
"versions": "4.9:5.9",
"flags": "-march=armv8-a+crc+crypto"
},
{
"versions": "6:6.9",
"flags": "-march=armv8.1-a+crc+crypto"
},
{
"versions": "7:7.9",
"flags": "-arch=armv8.2a+crc+crypt+fp16"
},
{
"versions": "8:",
"flags": "-arch=armv8.2a+crc+aes+sh2+fp16+sve -msve-vector-bits=512"
}
],
"clang": {
"versions": ":",
"flags": "-march=armv8-a -mcpu=generic"
}
}
},
"arm": {
"from": null,
"vendor": "generic",