Current subword (byte/short) gather load APIs' implementation is not SVE friendly. As discussed in PR [1], we'd like to re-implement such APIs with a unified cross-platform solution.
The main idea is re-implementing the subword gather load API at the Java level by performing multiple sub-gather operations. Each sub-gather operation loads a portion of elements with a specific index vector by calling a HotSpot intrinsic API. And then merge each part at the end. All these operations are finished in Java-level. This could simplify the vm compiler intrinsifaction, which matches the current API design.
Note that this PR only includes the refactoring of the Java API code and the HotSpot x86 backend implementation. A follow-up PR will add the AArch64 SVE backend support.
[1] https://github.com/openjdk/jdk/pull/26236
The main idea is re-implementing the subword gather load API at the Java level by performing multiple sub-gather operations. Each sub-gather operation loads a portion of elements with a specific index vector by calling a HotSpot intrinsic API. And then merge each part at the end. All these operations are finished in Java-level. This could simplify the vm compiler intrinsifaction, which matches the current API design.
Note that this PR only includes the refactoring of the Java API code and the HotSpot x86 backend implementation. A follow-up PR will add the AArch64 SVE backend support.
[1] https://github.com/openjdk/jdk/pull/26236
- relates to
-
JDK-8351623 VectorAPI: Add SVE implementation of subword gather load operation
-
- Open
-