On Thu, 25 Feb 2021 09:31:01 GMT, Jie Fu <ji...@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

Reply via email to