[vectorIntrinsics+mask] RFR: 8271313: AArch64: SVE backend support for masking operations with predicate feature [v2]
Xiaohong Gong
xgong at openjdk.java.net
Mon Aug 9 02:16:33 UTC 2021
> This is the initial SVE backend implementations for all masking operations with the SVE predicate feature. It contains:
> - SVE codegen for vector operations under a mask controlling
> - SVE codegen for vector mask operations with predicate instructions
>
> The size of libjvm.so increases about 1.86% after adding all the backend changes. And the performance gain is about 3.7% ~ 7.88x for some masking operations of IntMaxVector with SVE 512 bits:
>
> Benchmark Gain
> IntMaxVector.ABSMasked 1.198
> IntMaxVector.ADDMasked 1.040
> IntMaxVector.ADDMaskedLanes 1.068
> IntMaxVector.ANDMasked 1.117
> IntMaxVector.ANDMaskedLanes 1.101
> IntMaxVector.AND_NOTMasked 1.037
> IntMaxVector.ASHRMasked 1.286
> IntMaxVector.ASHRMaskedShift 1.096
> IntMaxVector.BITWISE_BLENDMasked 1.085
> IntMaxVector.LSHRMasked 1.405
> IntMaxVector.LSHRMaskedShift 1.092
> IntMaxVector.MAXMaskedLanes 1.079
> IntMaxVector.MINMaskedLanes 1.079
> IntMaxVector.MULMasked 1.370
> IntMaxVector.ORMasked 1.038
> IntMaxVector.ORMaskedLanes 1.103
> IntMaxVector.SUBMasked 1.043
> IntMaxVector.XORMasked 1.151
> IntMaxVector.XORMaskedLanes 1.103
> IntMaxVector.allTrue 1.157
> IntMaxVector.anyTrue 1.158
> IntMaxVector.gatherMasked 7.880
> IntMaxVector.scatterMasked 4.732
Xiaohong Gong 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 three additional commits since the last revision:
- Add the implementation for masked compare and mask reinterpretation when esize is different
- Merge panama-vector:vectorIntrinsics+mask into JDK-8271313
- 8271313: AArch64: SVE backend support for masking operations with predicate feature
-------------
Changes:
- all: https://git.openjdk.java.net/panama-vector/pull/105/files
- new: https://git.openjdk.java.net/panama-vector/pull/105/files/bfb36151..0f56d0a6
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=105&range=01
- incr: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=105&range=00-01
Stats: 612 lines in 43 files changed: 471 ins; 98 del; 43 mod
Patch: https://git.openjdk.java.net/panama-vector/pull/105.diff
Fetch: git fetch https://git.openjdk.java.net/panama-vector pull/105/head:pull/105
PR: https://git.openjdk.java.net/panama-vector/pull/105
More information about the panama-dev
mailing list