[lworld+vector] Integrated: 8307715: Integrate VectorMask/Shuffle with value/primitive classes
Xiaohong Gong
xgong at openjdk.org
Fri Jun 2 05:47:39 UTC 2023
On Tue, 16 May 2023 04:08:20 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:
> This patch changes the Vector API java side and hotspot compiler code to make the `VectorMask` and `VectorShuffle` operations work well after integrating with valhalla value/primitive classes.
>
> Java side changes include:
> - Define the concrete `VectorMask/VectorShuffle `classes as value class.
> - Define the payload field type as primitive classes, which defines `MultiField` annotated field to save the element values.
> - Change all the relative API implementations, which use Unsafe APIs to access the new payload.
> - Move several VectorMask default operations to the abstract super class.
> - Minor code cleanup.
>
> Compiler changes include:
> - Enable intrinsification for `VectorMask/VectorShuffle` related operations.
> Mask input/output of `VectorBox/VectorUnbox` is changed to the boolean vector format, to adapt C2's `InlineTypeNode`
> and new `VectorBox` features. Note that the mask input/output is a normal vector or predicate before.
> - Refine `VectorBox` expanding logic to make it right when the primitive payload instance is not flattened.
> - Minor code cleanup.
>
> Basic VectorMask/VectorShuffle jtreg tests pass with"`-XX:+UnlockExperimentalVMOptions -XX:-EnableVectorSupport`",
> and the basic unit tests work well after enabling vector support.
This pull request has now been integrated.
Changeset: 4ce98c10
Author: Xiaohong Gong <xgong at openjdk.org>
Committer: Tobias Hartmann <thartmann at openjdk.org>
URL: https://git.openjdk.org/valhalla/commit/4ce98c10963a989fd3ecb52ca346f479c0ae181a
Stats: 5514 lines in 54 files changed: 869 ins; 2556 del; 2089 mod
8307715: Integrate VectorMask/Shuffle with value/primitive classes
Reviewed-by: jbhateja
-------------
PR: https://git.openjdk.org/valhalla/pull/845
More information about the valhalla-dev
mailing list