-
Notifications
You must be signed in to change notification settings - Fork 5.8k
8289604: compiler/vectorapi/VectorLogicalOpIdentityTest.java failed on x86 AVX1 system #9373
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
Conversation
…n x86 AVX1 system
👋 Welcome back xgong! A progress list of the required criteria for merging this PR into |
/label add hotspot-compiler |
@XiaohongGong |
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 good to me.
@XiaohongGong 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 9 new commits pushed to the
Please see this link for an up-to-date comparison between the source branch of this pull request and the ➡️ To integrate this PR with the above commit message to 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 submitted testing.
Including @chhagedorn for discussion. I was wondering why our testing with We are adding more IR framework testing for vectors. I think it is important to test them with different CPU's features if needed. #8999 added filter to run some sub-tests if CPU's feature is present/absent. But it relies on testing infrastructure to be executed on corresponding machine. It is not reliable (how many machines left with only AVX1). I suggest to allow a test add flags to whitelist with which it allows to run. It (together with #8999 and |
Thanks for looking at this fix @vnkozlov !
Right, testing with such vm options won't trigger the IR testing!
Totally agree! #8999 adds the possibility to limit the test for specific CPU feature, which is convenient for the IR tests that relies on the CPU feature. Please also see one of the tests in the But for the check of common IRs which is not the CPU specific ones, testing with different vm options are needed. And we cannot use |
tier1-tier2 testing passed. But I am still waiting result of run with failed test on machine with AVX1 only (it is in scheduled state). |
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.
Finally few runs with failed tests were executed on AVX1 machine and they passed.
Thanks for the testing! |
/integrate |
Going to push as commit fafe8b3.
Your commit was automatically rebased without conflicts. |
@XiaohongGong Pushed as commit fafe8b3. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
Right, Thanks, |
The sub-test "
testMaskAndZero()
" failed on x86 systems whenUseAVX=1
with the IR check failure:The root cause is the
VectorMask.fromArray/intoArray
APIsare not intrinsified when "
UseAVX=1
" for long type vectorswith following reasons:
integral vector operations when "
UseAVX=1
".VectorLoadMaskNode/VectorStoreMaskNode
are not supported for vectors with 2 elements (see [1]).
Note that
VectorMask.fromArray()
needs to be intrinsifiedwith "
LoadVector+VectorLoadMask
". AndVectorMask.intoArray()
needs to be intrinsified with "
VectorStoreMask+StoreVector
".Either "
VectorStoreMask
" or "StoreVector
" not supported by thecompiler backend will forbit the relative API intrinsification.
Replacing the vector type from Long to other integral types
in the test case can fix the issue.
[1] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/x86.ad#L1861
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk pull/9373/head:pull/9373
$ git checkout pull/9373
Update a local copy of the PR:
$ git checkout pull/9373
$ git pull https://git.openjdk.org/jdk pull/9373/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 9373
View PR using the GUI difftool:
$ git pr show -t 9373
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/9373.diff