forked from openjdk/jdk
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
8319872: AArch64: [vectorapi] Implementation of unsigned (zero extend…
…ed) casts Vector API defines zero-extend operations [1], which are going to be intrinsified and generated to `VectorUCastNode` by C2. This patch adds backend implementation for VectorUCastNode on AArch64. The micro benchmark shows significant performance improvement. In my test machine (SVE, 256-bit), the result is shown as below: Benchmark Before After Units Gain VectorZeroExtend.byte2Int 3168.251 243012.399 ops/ms 75.70 VectorZeroExtend.byte2Long 3212.201 216291.588 ops/ms 66.33 VectorZeroExtend.byte2Short 3391.968 182655.365 ops/ms 52.85 VectorZeroExtend.int2Long 1012.197 80448.553 ops/ms 78.48 VectorZeroExtend.short2Int 1812.471 153416.828 ops/ms 83.65 VectorZeroExtend.short2Long 1788.382 129794.814 ops/ms 71.58 On other Neon systems, we can get similar performance boost as a result of intrinsification success. Since `VectorUCastNode` only used in Vector API's zero extension currently, this patch also adds assertion on nodes' definitions to clarify their usages. [TEST] compiler/vectorapi and jdk/incubator/vector passed on NEON and SVE machines. [1] https://github.com/openjdk/jdk/blob/master/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorOperators.java#L726 Change-Id: I10770759f158975ead1eecd3fb63280e563ed5e2
- Loading branch information
Eric Liu
committed
Nov 15, 2023
1 parent
4e8c036
commit 2855229
Showing
7 changed files
with
376 additions
and
39 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.