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:
@@ -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)
|
||||
|
@@ -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",
|
||||
|
Reference in New Issue
Block a user