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 3 commits 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. |
Webrevs
|
|
/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. |
|
The parent pull request that this pull request depends on has now been integrated and the target branch of this pull request has been updated. This means that changes from the dependent pull request can start to show up as belonging to this pull request, which may be confusing for reviewers. To remedy this situation, simply merge the latest changes from the new target branch into this pull request by running commands similar to these in the local repository for your personal fork: git checkout JDK-8370481-V25
git fetch https://git.openjdk.org/jdk25u-dev.git master
git merge FETCH_HEAD
# if there are conflicts, follow the instructions given by git merge
git commit -m "Merge master"
git push |
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
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