-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
JIT ARM64-SVE2: Add IF_SVE_DQ_0A, IF_SVE_DR_1A, IF_SVE_DS_2A #95996
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsPart of #94549. This change implements the
cstool output:
cc @dotnet/arm64-contrib
|
cc @a74nh |
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, just needs the extra comments.
dst += emitOutput_Instr(dst, code); | ||
break; | ||
|
||
case IF_SVE_DS_2A: // .........x.mmmmm ......nnnnn..... -- SVE conditionally terminate scalars |
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.
Could you add the display encoding (just copy/paste from the codegen tests) above the case:
// <R><n>, <R><m>
This makes is easy to group together the encoding groups with the same displays.
Same for the other two groups (SetFFR would be // none
or something similar)
FYI, This PR will need rebasing - #96005 moved the codegen tests to a new file. |
@a74nh thank you for the review! I've added your suggested comments and merged in the unit test changes. |
Thanks. All LGTM now. |
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.
Changes looks good. One minor feedback.
src/coreclr/jit/emitarm64.cpp
Outdated
* Add a SETFFR instruction: initialize first-fault register to all true. | ||
*/ | ||
|
||
void emitter::emitInsSve_SetFFR() |
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.
We should probably reuse emitIns_I()
for it. It encodes the instructions that don't take registers.
src/coreclr/jit/emitarm64.h
Outdated
@@ -340,6 +340,9 @@ static code_t insEncodeReg_V_21_to_17(regNumber reg); | |||
// Return an encoding for the specified 'R' register used in '21' thru '17' position. | |||
static code_t insEncodeReg_R_21_to_17(regNumber reg); | |||
|
|||
// Return an encoding for the specified 'R' register used in '20' thru '16' position. | |||
static code_t insEncodeReg_R_20_to_16(regNumber reg); |
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 have fixed this in #96082.
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.
Thank you for letting me know. It looks like your PR will get merged in pretty soon, so I'll wait to merge your changes into mine.
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.
@amanasifkhalid - do you mind addressing #96082 (comment) in your PR, since you will have another round of CI run anyway?
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.
Sure thing, I'll update the assert.
@kunalspathak thank you for the review! I've consolidated 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.
LGTM
@kunalspathak I've updated the assert, PTAL |
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
Part of #94549. This change implements the
IF_SVE_DQ_0A
,IF_SVE_DR_1A
, andIF_SVE_DS_2A
encodings. JIT disasm output:cstool output:
cc @dotnet/arm64-contrib