I am working on JDK-8209594 (short branches distance too big when avx512 is used) and I found more issues with it and I need time to find all cases.
Some instructions are totally wrong (copy-paste error) when register >=16 are used:
http://hg.openjdk.java.net/jdk/jdk11/file/f729ca27cf9a/src/hotspot/cpu/x86/macroAssembler_x86.cpp#l4680
http://hg.openjdk.java.net/jdk/jdk11/file/f729ca27cf9a/src/hotspot/cpu/x86/macroAssembler_x86.cpp#l4581
Also some vector predicated in .ad file are wrong for the same issue:
http://hg.openjdk.java.net/jdk/jdk11/file/f729ca27cf9a/src/hotspot/cpu/x86/x86.ad#l5647
I am currently trying to instrument code to emulate situation when only xmm16-31 are used, as we discussed before, to find incorrect cases and I need time for that.
At this later time I want to switch off avx512 in JDK 11.