RFR: 8370481: C2 SuperWord: Long/Integer.compareUnsigned return wrong value in SLP [v5]

Hamlin Li mli at openjdk.org
Thu Oct 23 19:42:24 UTC 2025


On Thu, 23 Oct 2025 19:15:34 GMT, Hamlin Li <mli at openjdk.org> wrote:

>> test/hotspot/jtreg/compiler/c2/irTests/TestVectorConditionalMove.java line 1131:
>> 
>>> 1129:                  "testCMoveULGTforL",
>>> 1130:                  "testCMoveULGTforF",
>>> 1131:                  "testCMoveULGTforD",
>> 
>> I just realized that we only have `GT` cases. But what about `GE,LE,LT`? Are those covered somewhere else?
>> 
>> Otherwise we only test a fraction of
>> `static mask unsigned_mask(mask btm) { return mask(btm | unsigned_compare); }`
>> 
>> What do you think?
>
> Make sense, I'll add more tests.

Added tests to cover UI{GE|LT|LE}forF and UL{GE|LT|LE}forD.

Other tests for example UI{GE|LT|LE}forD UL{GE|LT|LE}forF could be added when I work on https://github.com/openjdk/jdk/pull/25336 or https://github.com/openjdk/jdk/pull/25341, as currently they are not vectorized.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/27942#discussion_r2456977884


More information about the hotspot-compiler-dev mailing list