Added NEON to the list of features required for the aarch64 family

Both floating-point and NEON are required in all standard ARMv8
implementations. Theoretically though specialized markets can support
no NEON or floating-point at all. Source:

https://developer.arm.com/docs/den0024/latest/aarch64-floating-point-and-neon

On the other hand the base procedure call standard for Aarch64
"assumes the availability of the vector registers for passing
floating-point and SIMD arguments". Further "the Arm 64-bit
architecture defines two mandatory register banks: a general-purpose
register bank which can be used for scalar integer processing and
pointer arithmetic; and a SIMD and Floating-Point register bank".
Source:

https://developer.arm.com/docs/ihi0055/latest/procedure-call-standard-for-the-arm-64-bit-architecture

This makes customization of Aarch64 with no NEON instruction set
available so unlikely that we can consider them a feature of the
generic family.
This commit is contained in:
Massimiliano Culpo 2019-10-02 08:35:32 +02:00 committed by Todd Gamblin
parent 77444dff10
commit b07460ab5f
2 changed files with 7 additions and 0 deletions

View File

@ -904,6 +904,12 @@
"any_of": [
"sse4_2"
]
},
"neon": {
"reason": "NEON is required in all standard ARMv8 implementations",
"families": [
"aarch64"
]
}
}
}

View File

@ -156,6 +156,7 @@ def test_architecture_family(target_name, expected_family):
('skylake', 'sse3'),
('power8', 'altivec'),
('broadwell', 'sse4.1'),
('aarch64', 'neon')
])
def test_features_query(target_name, feature):
target = llnl.util.cpu.targets[target_name]