-
Notifications
You must be signed in to change notification settings - Fork 6.2k
8357551: RISC-V: support CMoveF/D vectorization #28309
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
base: master
Are you sure you want to change the base?
8357551: RISC-V: support CMoveF/D vectorization #28309
Conversation
|
👋 Welcome back mli! A progress list of the required criteria for merging this PR into |
|
❗ This change is not yet ready to be integrated. |
|
|
|
@Hamlin-Li The following labels 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 lists. If you would like to change these labels, use the /label pull request command. |
Webrevs
|
|
/label add hotspot-compiler |
|
@eme64 |
eme64
left a comment
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 won't be able to review the RISCV part, so you'll have to find someone else there. I just dropped 2 drive-by comments about the tests :)
Hi,
This pr add CMoveF/D on riscv, which enable vectorization of statement like:
op_1 bop op_2 ? res_f_d_1 : res_f_d_2 in a loop.This pr is also a preparation for further vectorization in #28231.
Previously it's #25341, but at that time, C2 SLP has some issue with unsigned comparison, which is now fixed, so it's good to continue the work.
Test
Jtreg
in progress...
Performance
Column names meanings:
-XX:+UseVectorCmov -XX:+UseCMoveUnconditionallyturned on-XX:+UseVectorCmov -XX:+UseCMoveUnconditionallyturned onAverage improvement
NOTE: With only this PR, it brings performance benefit in case of
CMoveF+CmpF,CMoveD+ComD,CMoveF+CmpI,CMoveD+CmpL. The data below is based on fullly implmenting the vectorization ofCMoveI/L/F/D+CmpI/L/F/D, which will be achieved by #28231.For details, check the performance data in #25341 on riscv.
Progress
Issue
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/28309/head:pull/28309$ git checkout pull/28309Update a local copy of the PR:
$ git checkout pull/28309$ git pull https://git.openjdk.org/jdk.git pull/28309/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 28309View PR using the GUI difftool:
$ git pr show -t 28309Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/28309.diff
Using Webrev
Link to Webrev Comment