-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8368205: [TESTBUG] VectorMaskCompareNotTest.java crashes when MaxVectorSize=8 #27805
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
8368205: [TESTBUG] VectorMaskCompareNotTest.java crashes when MaxVectorSize=8 #27805
Conversation
…s when running without VectorRegisters
👋 Welcome back mdoerr! A progress list of the required criteria for merging this PR into |
@TheRealMDoerr This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 30 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. ➡️ To integrate this PR with the above commit message to the |
@TheRealMDoerr The following label will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command. |
Webrevs
|
@TheRealMDoerr I think I prefer this solution 😊 Though I wonder if we need to add some kind of label for the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is a good and easy to understand solution.
@TheRealMDoerr I'll approve after some internal sanity testing :) |
@DingliZhang, @RealFYang: Can one of you please check if this is also fine for RISC-V, please? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks for taking care of the issue!
@erifan: Thanks for the review! I've added a check if the flag is available similar to what you had in your PR. That may be needed for VM configurations without C2 compiler. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @TheRealMDoerr Thanks for the patch! I’ve tested VectorMaskCompareNotTest.java
on k1 and k230 (with RVV) as well as sg2042 (without RVV), and it looks good.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks reasonable. Sanity testing for commit 1 passed.
Thank you for all the reviews and for testing! |
Going to push as commit 6e911d8.
Your commit was automatically rebased without conflicts. |
@TheRealMDoerr Pushed as commit 6e911d8. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
@TheRealMDoerr Please consider whether my comment is reasonable. Also, @eme64 tested your commit 1, but then you pushed commit 2. So commit 1 is no longer the latest code. Although I think commit 2 will likely pass the test as well. |
* @summary test combining vector not operation with compare | ||
* @modules jdk.incubator.vector | ||
* @requires (os.arch != "riscv64" | (os.arch == "riscv64" & vm.cpu.features ~= ".*rvv.*")) | ||
* @requires vm.opt.final.MaxVectorSize == "null" | vm.opt.final.MaxVectorSize >= 16 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be
* @requires vm.opt.final.MaxVectorSize == "null" | vm.opt.final.MaxVectorSize >= 16 | |
* @requires vm.opt.final.MaxVectorSize == "null" & vm.opt.final.MaxVectorSize >= 16 |
or
* @requires vm.opt.final.MaxVectorSize == "null" | vm.opt.final.MaxVectorSize >= 16 | |
* @requires vm.compiler2.enabled & vm.opt.final.MaxVectorSize >= 16 |
?
Assume this test is run with another compiler (like Graal) that doesn't support the option MaxVectorSize
, then vm.opt.final.MaxVectorSize == "null"
holds. But this can't guarantee that the max vector size >= 16.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I forgot to submit this comment. I thought I submitted it two days ago.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought someone may want to run the test in a configuration without C2. So, I didn't want to change the test for such cases. I leave such decisions to others. Maybe @dougxc has an opinion about Graal?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe they just need to put their own guards there if they care? It's hard to guard this very generically.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought someone may want to run the test in a configuration without C2.
Yeah I know your point. But vm.opt.final.MaxVectorSize == "null"
doesn't work I think, because this doesn't guarantee the max vector size >= 16. Perhaps as @eme64 pointed out, it is hard for us to ensure that all compilers work. This do no harm to C2 test, just a bit unnecessary.
The test
VectorMaskCompareNotTest
requires 16 Byte vectors (or larger). If the machine only uses 8 Byte vectors, we get an exception in the static initializer because the code tries to use a 4 Byte vector which is unsupported (stack trace: see JBS issue JDK-8369511). This is an alternative to #27749.Progress
Issue
Reviewers
Reviewers without OpenJDK IDs
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/27805/head:pull/27805
$ git checkout pull/27805
Update a local copy of the PR:
$ git checkout pull/27805
$ git pull https://git.openjdk.org/jdk.git pull/27805/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 27805
View PR using the GUI difftool:
$ git pr show -t 27805
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/27805.diff
Using Webrev
Link to Webrev Comment