[jdk17u-dev] RFR: 8265263: AArch64: Combine vneg with right shift count [v5]
Dmitry Chuyko
dchuyko at openjdk.org
Thu Nov 17 16:29:04 UTC 2022
> 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
-------------
Changes:
- all: https://git.openjdk.org/jdk17u-dev/pull/811/files
- new: https://git.openjdk.org/jdk17u-dev/pull/811/files/4d87503c..2d11e1a5
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk17u-dev&pr=811&range=04
- incr: https://webrevs.openjdk.org/?repo=jdk17u-dev&pr=811&range=03-04
Stats: 2056 lines in 49 files changed: 1054 ins; 811 del; 191 mod
Patch: https://git.openjdk.org/jdk17u-dev/pull/811.diff
Fetch: git fetch https://git.openjdk.org/jdk17u-dev pull/811/head:pull/811
PR: https://git.openjdk.org/jdk17u-dev/pull/811
More information about the jdk-updates-dev
mailing list