On Mon, 2 Nov 2026 16:08:28 GMT, Andrew Dinn <[email protected]> wrote:

>> To clarify, the Arm ARM does state that Advanced SIMD is OPTIONAL for Arm 
>> v8.0, however "standard operating systems" with "rich application 
>> environments" require Advanced SIMD. Anything that can run OpenJDK can be 
>> expected to have it.. The AAPCS64 explicitly requires Advanced SIMD, so any 
>> programs compiled against that can expect it. 
>> 
>> The UseIntPolyIntrinsics appears to add UMULL, UMULL2, which are standard 
>> and don't need to detect Advanced SIMD.
>> 
>> Instructions that are specifically for cryptography (SHA, AES, SM3/4, PMULL) 
>> should be detected as they aren't guaranteed to be included.
>> 
>> So I agree with the removal of this feature detection for Advanced SIMD, it 
>> is redundant.
>
> @stooart-mon Thanks for clarifying. Given that Linux and Windows on AArch64 
> both assume AAPCS64 I think we can assume the ASIMD feature is present. In 
> the RFE mentioned above I recommended adding an assert that the feature is 
> present (extra braces to augment the security offered by that belt).

@adinn agreed, we must assume ASIMD is present. It looks likely that Hotspot 
would crash before getting to detecting NEON, I see "movi v4.s, #0"  executing 
before VM_Version::Initialize is executed, so I don't have a strong opinion on 
adding an assert. You could even detect whether "__ARM_NEON" had been defined 
at compile time and #error if it isn't present, but that would be probably 
going too far.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/33661#issuecomment-6584310591

Reply via email to