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