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