RFR(M): 8213134: AArch64: vector shift failed with MaxVectorSize=8

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Nov 20 20:35:27 UTC 2018

I don't see any checking or setting for MaxVectorSize in vm_version_aarch64.cpp.
In such case you will definitely hit your new assert Matcher::vector_shift_count_ideal_reg().
aarch64.ad code Matcher::vector_width_in_bytes() has limit vector size to 16 bytes. So using  MaxVectorSize > 16 will 
hit the assert.


On 11/18/18 11:53 PM, Yang Zhang (Arm Technology China) wrote:
> Hi,
> When I implemented AArch64 NEON for Vector API (http://openjdk.java.net/jeps/338), I found an issue about vector shift. I have a patch which could fix this issue. Could anyone help to review this patch?
> Webrev: http://cr.openjdk.java.net/~yzhang/8213134/webrev.01/
> JBS:  https://bugs.openjdk.java.net/browse/JDK-8213134
> This patch is verified both in jdk/jdk master and panama/vectorIntrinsics, and tests are passed.
> Hotspt jtreg contains the following test cases that can cover all the patterns of vector shift.  But only default option "-XX:MaxVectorSize=64" is tested, so this issue isn't detected. Now I add "-XX:MaxVectorSize=8", "-XX:MaxVectorSize=16" and "-XX:MaxVectorSize=32" to these jtreg tests in this patch.
> compiler/c2/cr6340864/TestByteVect.java
> compiler/c2/cr6340864/TestIntVect.java
> compiler/c2/cr6340864/TestShortVect.java
> compiler/codegen/TestCharVect2.java
> Regards
> Yang

More information about the hotspot-dev mailing list