[lworld+vector] RFR: 8311675: [lworld+vector] Max Species support.
Xiaohong Gong
xgong at openjdk.org
Sun Oct 8 02:04:29 UTC 2023
On Thu, 28 Sep 2023 18:02:04 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
> - Patch adds MaxSpecies support for all types of vectors.
> - New factory methods and VectorPayload classes for various kinds of vector, shuffle and mask payloads.
> - Disable CDS archiving of VectorPayload classes.
> - Summary of high level flow :-
> 1/ Max species payloads encapsulate @multifield annotated field accepting -1 value as bundle size parameter.
> 2/ For Vector payload bundle size is determined using maximum vector size supported by the target.
> 3/ For Shuffles and Masks payloads multifield bundle size is a function of maximum vector size and vector lane size.
> 4/ Based on the dynamic bundle size parser creates a separate FieldInfo structure for each base and synthetic multifield and rest of the flow remains the same.
>
> Kindly review and share your feedback.
>
> Best Regards,
> Jatin
I met a new JVM crash issues on ARM Neon platform with this PR. Log is:
test IntMaxVectorLoadStoreTests.loadArrayMaskIOOBE(int[i * 5], l + speciesl + 1, mask[false]): success
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (valhalla/src/hotspot/share/opto/type.cpp:4177), pid=1739617, tid=1739655
# assert(!flat_array || can_be_inline_type()) failed: Only inline types can be flat in array
#
# JRE version: OpenJDK Runtime Environment (22.0) (fastdebug build 22-internal-git-b575ef0fa)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 22-internal-git-b575ef0fa, mixed mode, compressed oops, compressed class ptrs, g1 gc, linux-aarch64)
# Problematic frame:
# V [libjvm.so+0x18697d0] TypeInstPtr::TypeInstPtr(TypePtr::PTR, ciKlass*, TypePtr::InterfaceSet const&, bool, ciObject*, Type::Offset, bool, int, TypePtr const*, int)+0x15c
And a regression in `DoubleMaxVectorTests` such as:
test DoubleMaxVectorTests.IS_FINITEMaskedDoubleMaxVectorTests(double[cornerCaseValue(i)], mask[i % 2]): failure
java.lang.AssertionError: expected [true] but found [false]
at org.testng.Assert.fail(Assert.java:99)
at org.testng.Assert.failNotEquals(Assert.java:1037)
at org.testng.Assert.assertEqualsImpl(Assert.java:140)
at org.testng.Assert.assertEquals(Assert.java:122)
at org.testng.Assert.assertEquals(Assert.java:819)
at org.testng.Assert.assertEquals(Assert.java:829)
at DoubleMaxVectorTests.IS_FINITEMaskedDoubleMaxVectorTests(DoubleMaxVectorTests.java:2716)
...
-------------
PR Comment: https://git.openjdk.org/valhalla/pull/931#issuecomment-1751891648
More information about the valhalla-dev
mailing list