8370481: C2 SuperWord: Long/Integer.compareUnsigned return wrong value in SLP - #728
8370481: C2 SuperWord: Long/Integer.compareUnsigned return wrong value in SLP#728rm-gh-8 wants to merge 1 commit into
Conversation
|
👋 Welcome back rmesde! A progress list of the required criteria for merging this PR into |
|
❗ This change is not yet ready to be integrated. |
|
This backport pull request has now been updated with issue from the original commit. |
|
/approval request for backport of JDK-8370481: C2 SuperWord: Long/Integer.compareUnsigned return wrong value in SLP. This PR fixes a C2 auto-vectorization correctness bug. Please note that this PR introduces a regression for unsigned I/L EQ/NE in SLP that will be fixed by JDK-8370794 (dependent PR). For parity with Oracle JDK. Low-moderate risk — a narrowly-scoped fix to C2, but the new ShouldNotReachHere() would crash a JVM if an unexpected comparison reaches it. |
Backporting JDK-8370481: C2 SuperWord: Long/Integer.compareUnsigned return wrong value in SLP.
This PR fixes a C2 auto-vectorization correctness bug.
Please note that this PR introduces a regression for unsigned I/L EQ/NE in SLP that will be fixed by JDK-8370794 (dependent PR).
For parity with Oracle JDK.
Ran related tests on linux-x64, linux-aarch64, macos-aarch64 and windows-x64:
make test TEST=test/hotspot/jtreg/compiler/c2/irTests/TestVectorConditionalMove.java
make test TEST=hotspot_compiler
Results:
windows-x64-specific-test.log
windows-x64-specific-2-test.log
macos-aarch64-specific-test.log
macos-aarch64-specific-2-test.log
linux-x64-specific-test.log
linux-x64-specific-2-test.log
linux-aarch64-specific-test.log
linux-aarch64-specific-2-test.log
Progress
Integration blocker
Issue
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk25u-dev.git pull/728/head:pull/728$ git checkout pull/728Update a local copy of the PR:
$ git checkout pull/728$ git pull https://git.openjdk.org/jdk25u-dev.git pull/728/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 728View PR using the GUI difftool:
$ git pr show -t 728Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk25u-dev/pull/728.diff
Using Webrev
Link to Webrev Comment