RFR: 8358592: Assert in Assembler::ptest due to missing SSE42 support
guanqiang han
duke at openjdk.org
Mon Jul 7 02:57:13 UTC 2025
Setting "-XX:UseSSE=1" in command line prevents the code from entering the block shown below, which causes UseSSE42Intrinsics to not be correctly set. Because supports_sse3() return false.

in addition , setting "-XX:+UseSSE42Intrinsics" in command line set UseVectorizedMismatchIntrinsic to True shown below.

The above code causes the ptest instruction to be invoked.
The assertion "assert(VM_Version::supports_sse4_1() || VM_Version::supports_avx(), "")" in ptest was triggered and caused the crash because of the following reason:
Setting "-XX:UseSSE=1" in command line cause "CPU_SSE4_1" was cleared and cause "VM_Version::supports_sse4_1()" return false ,related code as below:

Setting "-XX:UseSSE=1" in command line cause "UseAVX=0" and cause "VM_Version::supports_avx()" return false ,related code as below:

all of these above cause this issue.
i fix this issue by correcting UseSSE42Intrinsics to false when "UseSSE" in command line was set to 1, so that UseVectorizedMismatchIntrinsic will be set false and ptest was not triggered.
-------------
Commit messages:
- 8358592: Assert in Assembler::ptest due to missing SSE42 support
Changes: https://git.openjdk.org/jdk/pull/26151/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26151&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8358592
Stats: 4 lines in 1 file changed: 4 ins; 0 del; 0 mod
Patch: https://git.openjdk.org/jdk/pull/26151.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/26151/head:pull/26151
PR: https://git.openjdk.org/jdk/pull/26151
More information about the hotspot-dev
mailing list