RFR: 8358592: Assert in Assembler::ptest due to missing SSE42 support [v6]
duke
duke at openjdk.org
Tue Jul 15 22:44:43 UTC 2025
On Tue, 15 Jul 2025 06:26:09 GMT, Guanqiang Han <duke at openjdk.org> wrote:
>> 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.
>
> Guanqiang Han has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains nine additional commits since the last revision:
>
> - move UseSSE42Intrinsics check outside of the CPU-specific sections
> - Merge remote-tracking branch 'upstream/master' into 8358592
> - Update full name
> - Merge remote-tracking branch 'upstream/master' into 8358592
> - update regression test
> - Update Test8358592.java
>
> run on x86_64
> - add regression test for JDK-8358592
> - Merge remote-tracking branch 'upstream/master' into 8358592
> - 8358592: Assert in Assembler::ptest due to missing SSE42 support
>
> Setting "-XX:UseSSE=1" in command line prevents the code from entering the block which causes UseSSE42Intrinsics to not be correctly set.
@hgqxjj
Your change (at version 1154c860782324419c2f47405228ac6e0fc22f27) is now ready to be sponsored by a Committer.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/26151#issuecomment-3075969920
More information about the hotspot-dev
mailing list