-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
P3
-
Affects Version/s: 26
-
Component/s: hotspot
-
x86_64
-
generic
The attached Test.java (which is the same as compiler.c2.ClearArray but renamed) fails with the assertion below when running with the following flags on an AVX512 machine:
$ java -XX:+EnableX86ECoreOpts -XX:MaxVectorSize=8 -XX:UseAVX=3 Test.java
Original report:
Command Line: make test CONF=fast TEST=test/hotspot/jtreg/compiler/c2/ClearArray.java JTREG="JAVA_OPTIONS=-XX:UseAVX=2 -XX:+EnableX86ECoreOpts"
System : Granite Rapids
Assertion Failure:
command: main -XX:+UnlockDiagnosticVMOptions -XX:+IgnoreUnrecognizedVMOptions -XX:-TieredCompilation -Xbatch -XX:InitArrayShortSize=32768 -XX:MaxVectorSize=8 -XX:-IdealizeClearArrayNode -XX:UseAVX=3 compiler.c2.ClearArray
reason: User specified action: run main/othervm -XX:+UnlockDiagnosticVMOptions -XX:+IgnoreUnrecognizedVMOptions -XX:-TieredCompilation -Xbatch -XX:InitArrayShortSize=32768 -XX:MaxVectorSize=8 -XX:-IdealizeClearArrayNode -XX:UseAVX=3 compiler.c2.ClearArray
started: Tue Jan 06 05:34:11.183 UTC 2026
Mode: othervm [/othervm specified]
Process id: 3737516
finished: Tue Jan 06 05:34:13.568 UTC 2026
elapsed time (seconds): 2.385
configuration:
STDOUT:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/home/jbhateja/sandboxes/jdk/src/hotspot/cpu/x86/macroAssembler_x86.hpp:114), pid=3737516, tid=3737519
# guarantee(this->is8bit(imm8)) failed: Short forward jump exceeds 8-bit offset at /home/jbhateja/sandboxes/jdk/src/hotspot/cpu/x86/macroAssembler_x86.cpp:5892
#
# JRE version: (27.0) (fastdebug build )
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 27-internal-adhoc.root.jdk, mixed mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x7b8c8d] Label::patch_instructions(MacroAssembler*)+0x3bd
#
# Core dump will be written. Default location: Determined by the following: "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -F%F -- %E" (alternatively, falling back to /home/jbhateja/sandboxes/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_hotspot_jtreg_compiler_c2_ClearArray_java/scratch/0/core.3737516)
#
# An error report file with more information is saved as:
# /home/jbhateja/sandboxes/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_hotspot_jtreg_compiler_c2_ClearArray_java/scratch/0/hs_err_pid3737516.log
#
#
Stack: [0x00007fe21f9dd000,0x00007fe21fadd000], sp=0x00007fe21fad8e50, free space=1007k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x7540fd] Label::patch_instructions(MacroAssembler*)+0x3ad (macroAssembler_x86.hpp:114)
V [libjvm.so+0x1640a18] MacroAssembler::generate_fill(BasicType, bool, Register, Register, Register, Register, XMMRegister)+0x8e8
V [libjvm.so+0x1a7b257] StubGenerator::generate_fill(StubId)+0x107
V [libjvm.so+0x1a8240b] StubGenerator::generate_arraycopy_stubs()+0x2bb
V [libjvm.so+0x1a4fbe8] StubGenerator::generate_final_stubs()+0x28
V [libjvm.so+0x1a51960] StubGenerator_generate(CodeBuffer*, BlobId)+0xb0
V [libjvm.so+0x1ad2d52] initialize_stubs(BlobId, int, int, char const*, char const*, char const*) [clone .constprop.0]+0x242
V [libjvm.so+0x1ad3578] final_stubs_init()+0x38
V [libjvm.so+0x10730cd] init_globals2()+0x6d
V [libjvm.so+0x1bbb4cf] Threads::create_vm(JavaVMInitArgs*, bool*)+0x3af
V [libjvm.so+0x123ebe4] JNI_CreateJavaVM+0x54
C [libjli.so+0x3e7f] JavaMain+0x8f
C [libjli.so+0x8099] ThreadJavaMain+0x9
$ java -XX:+EnableX86ECoreOpts -XX:MaxVectorSize=8 -XX:UseAVX=3 Test.java
Original report:
Command Line: make test CONF=fast TEST=test/hotspot/jtreg/compiler/c2/ClearArray.java JTREG="JAVA_OPTIONS=-XX:UseAVX=2 -XX:+EnableX86ECoreOpts"
System : Granite Rapids
Assertion Failure:
command: main -XX:+UnlockDiagnosticVMOptions -XX:+IgnoreUnrecognizedVMOptions -XX:-TieredCompilation -Xbatch -XX:InitArrayShortSize=32768 -XX:MaxVectorSize=8 -XX:-IdealizeClearArrayNode -XX:UseAVX=3 compiler.c2.ClearArray
reason: User specified action: run main/othervm -XX:+UnlockDiagnosticVMOptions -XX:+IgnoreUnrecognizedVMOptions -XX:-TieredCompilation -Xbatch -XX:InitArrayShortSize=32768 -XX:MaxVectorSize=8 -XX:-IdealizeClearArrayNode -XX:UseAVX=3 compiler.c2.ClearArray
started: Tue Jan 06 05:34:11.183 UTC 2026
Mode: othervm [/othervm specified]
Process id: 3737516
finished: Tue Jan 06 05:34:13.568 UTC 2026
elapsed time (seconds): 2.385
configuration:
STDOUT:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/home/jbhateja/sandboxes/jdk/src/hotspot/cpu/x86/macroAssembler_x86.hpp:114), pid=3737516, tid=3737519
# guarantee(this->is8bit(imm8)) failed: Short forward jump exceeds 8-bit offset at /home/jbhateja/sandboxes/jdk/src/hotspot/cpu/x86/macroAssembler_x86.cpp:5892
#
# JRE version: (27.0) (fastdebug build )
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 27-internal-adhoc.root.jdk, mixed mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x7b8c8d] Label::patch_instructions(MacroAssembler*)+0x3bd
#
# Core dump will be written. Default location: Determined by the following: "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -F%F -- %E" (alternatively, falling back to /home/jbhateja/sandboxes/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_hotspot_jtreg_compiler_c2_ClearArray_java/scratch/0/core.3737516)
#
# An error report file with more information is saved as:
# /home/jbhateja/sandboxes/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_hotspot_jtreg_compiler_c2_ClearArray_java/scratch/0/hs_err_pid3737516.log
#
#
Stack: [0x00007fe21f9dd000,0x00007fe21fadd000], sp=0x00007fe21fad8e50, free space=1007k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x7540fd] Label::patch_instructions(MacroAssembler*)+0x3ad (macroAssembler_x86.hpp:114)
V [libjvm.so+0x1640a18] MacroAssembler::generate_fill(BasicType, bool, Register, Register, Register, Register, XMMRegister)+0x8e8
V [libjvm.so+0x1a7b257] StubGenerator::generate_fill(StubId)+0x107
V [libjvm.so+0x1a8240b] StubGenerator::generate_arraycopy_stubs()+0x2bb
V [libjvm.so+0x1a4fbe8] StubGenerator::generate_final_stubs()+0x28
V [libjvm.so+0x1a51960] StubGenerator_generate(CodeBuffer*, BlobId)+0xb0
V [libjvm.so+0x1ad2d52] initialize_stubs(BlobId, int, int, char const*, char const*, char const*) [clone .constprop.0]+0x242
V [libjvm.so+0x1ad3578] final_stubs_init()+0x38
V [libjvm.so+0x10730cd] init_globals2()+0x6d
V [libjvm.so+0x1bbb4cf] Threads::create_vm(JavaVMInitArgs*, bool*)+0x3af
V [libjvm.so+0x123ebe4] JNI_CreateJavaVM+0x54
C [libjli.so+0x3e7f] JavaMain+0x8f
C [libjli.so+0x8099] ThreadJavaMain+0x9
- caused by
-
JDK-8365290 [perf] x86 ArrayFill intrinsic generates SPLIT_STORE for unaligned arrays
-
- Resolved
-
- links to
-
Review(master)
openjdk/jdk/29070