I ran this:
~/Documents/jtreg/bin/jtreg -va -s -jdk:/oracle-work/jdk-fork2/build/linux-x64-debug/jdk -javaoptions:"-XX:MaxVectorSize=8" -J-Djavatest.maxOutputSize=10000000 /oracle-work/jdk-fork2/open/test/hotspot/jtreg/compiler/c2/ClearArray.java
And got that:
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/oracle-work/jdk-fork2/open/src/hotspot/cpu/x86/macroAssembler_x86.cpp:9473), pid=2498389, tid=2498406
# assert(MaxVectorSize >= 32) failed: vector length should be >= 32
#
# JRE version: Java(TM) SE Runtime Environment (23.0) (fastdebug build 23-internal-2024-03-12-0734066.emanuel...)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 23-internal-2024-03-12-0734066.emanuel..., mixed mode, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x132c9e5] MacroAssembler::fill64(Address, XMMRegister, bool)+0x1c5
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /oracle-work/jdk-fork2/build/linux-x64-slowdebug/jdk/bin/JTwork/scratch/core.2498389)
#
# An error report file with more information is saved as:
# /oracle-work/jdk-fork2/build/linux-x64-slowdebug/jdk/bin/JTwork/scratch/hs_err_pid2498389.log
#
# Compiler replay data is saved as:
# /oracle-work/jdk-fork2/build/linux-x64-slowdebug/jdk/bin/JTwork/scratch/replay_pid2498389.log
#
# If you would like to submit a bug report, please visit:
# https://bugreport.java.com/bugreport/crash.jsp
I suspect that this is a AVX512 feature, since it only seems to reprodue on such machines. But setting -XX:UseAVX=2 does not stop the compiler from using fill64, which seems to be an AVX512 feature.