RFR: 8262096: Vector API fails to work due to VectorShape initialization exception
Paul Sandoz
psandoz at openjdk.java.net
Thu Feb 25 17:25:40 UTC 2021
On Thu, 25 Feb 2021 09:31:01 GMT, Jie Fu <jiefu at openjdk.org> wrote:
> Hi all,
>
> Vector API fails to work when:
> - case 1: MaxVectorSize is set to <=8, or
> - case 2: C2 is disabled
>
> The reason is that {max/preferred} VectorShape initialization fails in both cases.
> And the root cause is that VectorSupport_GetMaxLaneCount [1] returns unreasonable values (0 for case 1 and -1 for case 2).
>
> Vector API should not depend on C2 to run.
> It should work even there is no JIT compiler since it's a Java-level api.
> So let's fix it.
>
> Testing:
> - jdk/incubator/vector with -XX:MaxVectorSize=default/8 on Linux/x64
>
> Thanks.
> Best regards,
> Jie
>
> [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/prims/vectorSupport.cpp#L364
src/hotspot/share/prims/vectorSupport.cpp line 368:
> 366: if (java_lang_Class::is_primitive(mirror)) {
> 367: BasicType bt = java_lang_Class::primitive_type(mirror);
> 368: int min_lane_count = 64 / type2aelembytes(bt);
I am uncertain of the units here. Is the numerator in bits and the denominator in bytes?
-------------
PR: https://git.openjdk.java.net/jdk/pull/2722
More information about the core-libs-dev
mailing list