[jdk17u-dev] RFR: 8265263: AArch64: Combine vneg with right shift count [v5]

Dmitry Chuyko dchuyko at openjdk.org
Thu Dec 29 14:18:56 UTC 2022


On Thu, 17 Nov 2022 16:29:04 GMT, Dmitry Chuyko <dchuyko at openjdk.org> wrote:

>> This is a performance improvement for AArch64. There are several differences from the original change.
>> 
>> https://bugs.openjdk.org/browse/JDK-8267356 (Vector API SVE codegen support) is not in 17u, so `UseSVE == 0` parts in predicates are missing/excluded.
>> 
>> https://bugs.openjdk.org/browse/JDK-8288445 (C2 compilation fails) is a subsequent bugfix already backported in 17u, so some `immI` arguments in rules became `immI_positive`.
>> 
>> https://bugs.openjdk.org/browse/JDK-8277239 (SIGSEGV in vrshift_reg_maskedNode::emit) is also related to Vector API and is not in 17u, so `!n->as_ShiftV()->is_var_shift()` is replaced by `VectorNode::is_vshift_cnt(n->in(2))`. This substitution may raise doubts.
>> 
>> Testing: jtreg test/hotspot/jtreg/compiler, tier1, tier2 on aarch64.
>> 
>> Performance improvements in the added benchmark VectorShiftRight on Graviton 2 for default size=1024 correspond to the original review:
>> 
>> 
>> rShiftByte      16%
>> rShiftInt       27%
>> rShiftLong      16%
>> rShiftShort     20%
>> urShiftByte     0%
>> urShiftChar     20%
>> urShiftInt      27%
>> urShiftLong     16%
>
> Dmitry Chuyko has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision:
> 
>  - Merge branch 'openjdk:master' into JDK-8265263
>  - Merge branch 'openjdk:master' into JDK-8265263
>  - Fixed m4 mismatch
>  - No SVE checks in vsrcnt8B, vsrcnt16B
>  - Backport 49245131e98c1c72c447536e5527acecb3311add

I consider backporting of JDK-8277239 first, however the test mentioned there is stable on 17u in my experiments and the change doesn't apply cleanly. And there is also arm32 follow-up (JDK-8278267) that may be considered.

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

PR: https://git.openjdk.org/jdk17u-dev/pull/811


More information about the jdk-updates-dev mailing list