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.
>> ![图片1](https://github.com/user-attachments/assets/d3cdb1fe-f0e0-41dc-98c9-4427eaffdb0e)
>> in addition , setting "-XX:+UseSSE42Intrinsics" in command line set UseVectorizedMismatchIntrinsic to True shown below.
>> ![图片2](https://github.com/user-attachments/assets/bbe623a3-453a-483d-b34c-1cdb394f2d4e)
>> 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:
>> ![图片3](https://github.com/user-attachments/assets/e9a8a690-dd4d-4216-b09f-be8439a9a73b)
>> Setting "-XX:UseSSE=1" in command line  cause "UseAVX=0" and cause "VM_Version::supports_avx()" return false ,related code as below:
>> ![image](https://github.com/user-attachments/assets/6d9e770b-0a7a-43cd-a4bc-d15247f6478e)
>> 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