[lworld+vector] RFR: 8311675: [lworld+vector] Max Species support.
Jatin Bhateja
jbhateja at openjdk.org
Sun Oct 15 16:08:36 UTC 2023
On Sun, 8 Oct 2023 01:58:22 GMT, Xiaohong Gong <xgong 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)
> ...
Hi @XiaohongGong , Can you kindly do a validation run on AARCH64 with latest patch.
-------------
PR Comment: https://git.openjdk.org/valhalla/pull/931#issuecomment-1763434691
More information about the valhalla-dev
mailing list