RFR: 8284563: AArch64: bitperm feature detection for SVE2 on Linux [v2]

Vladimir Kozlov kvn at openjdk.java.net
Wed Apr 20 16:38:37 UTC 2022


On Mon, 18 Apr 2022 10:58:39 GMT, Eric Liu <eliu at openjdk.org> wrote:

>> This patch adds BITPERM feature detection for SVE2 on Linux. BITPERM is
>> an optional feature in SVE2 [1]. It enables 3 SVE2 instructions (BEXT,
>> BDEP, BGRP). BEXT and BDEP map efficiently to some vector operations,
>> e.g., the compress and expand functionalities [2] which are proposed in
>> VectorAPI's 4th incubation [3]. Besides, to generate specific code based
>> on different architecture features like x86, this patch exports
>> VM_Version::supports_XXX() for all CPU features.  E.g.,
>> VM_Version::supports_svebitperm() for easy use.
>> 
>> This patch also fixes a trivial bug, that sets UseSVE back to 1 if it's
>> 2 in SVE1 system.
>> 
>> [1] https://developer.arm.com/documentation/ddi0601/2022-03/AArch64-Registers/ID-AA64ZFR0-EL1--SVE-Feature-ID-register-0
>> [2] https://bugs.openjdk.java.net/browse/JDK-8283893
>> [3] https://bugs.openjdk.java.net/browse/JDK-8280173
>
> Eric Liu has updated the pull request incrementally with one additional commit since the last revision:
> 
>   small fix
>   
>   Change-Id: Ida979f925055761ad73e50655d0584dcee24aea4

this changes broke `compiler/intrinsics/sha/cli/TestUseSHA256IntrinsicsOptionOnUnsupportedCPU.java` test:

java.lang.AssertionError: Option 'UseSHA256Intrinsics' is expected to have 'false' value
Option 'UseSHA256Intrinsics' should be disabled by default
	at jdk.test.lib.cli.CommandLineOptionTest.verifyOptionValue(CommandLineOptionTest.java:307)
	at jdk.test.lib.cli.CommandLineOptionTest.verifyOptionValue(CommandLineOptionTest.java:280)
	at jdk.test.lib.cli.CommandLineOptionTest.verifyOptionValueForSameVM(CommandLineOptionTest.java:404)
	at compiler.intrinsics.sha.cli.testcases.GenericTestCaseForUnsupportedAArch64CPU.verifyOptionValues(GenericTestCaseForUnsupportedAArch64CPU.java:89)
	at compiler.intrinsics.sha.cli.DigestOptionsBase$TestCase.test(DigestOptionsBase.java:163)
	at compiler.intrinsics.sha.cli.DigestOptionsBase.runTestCases(DigestOptionsBase.java:139)
	at jdk.test.lib.cli.CommandLineOptionTest.test(CommandLineOptionTest.java:537)
	at compiler.intrinsics.sha.cli.TestUseSHA256IntrinsicsOptionOnUnsupportedCPU.main(TestUseSHA256IntrinsicsOptionOnUnsupportedCPU.java:58)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
	at java.base/java.lang.reflect.Method.invoke(Method.java:578)
	at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127)
	at java.base/java.lang.Thread.run(Thread.java:828)
Caused by: java.lang.RuntimeException: 'UseSHA256Intrinsics\\s*:?=\\s*false' missing from stdout/stderr

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

PR: https://git.openjdk.java.net/jdk/pull/8258


More information about the hotspot-compiler-dev mailing list