-
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
Add arm64 encodings for IF_SVE_CL_3A to IF_SVE_CU_3A #95514
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsThe next batch.
For some of these I needed Fixed two of the perf scores for other instructions. The use of insOpts and emitAttr seems to have resolved into:
|
I assume WSP is named with as |
a5f514c
to
b56c574
Compare
Isn't it nonsensical to have a use of |
Is this how it is today for non-SVE? (instead of using insOpts for the element size) |
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
btw, do you mind posting the capstone vs. coreclr disassembly as well? |
capstone output (identical to clr output):
|
Yeah, agreed, we would never actually used it. Revered and switched test to 8byte. |
Ah, no non-SVE uses the vector size. Looking at my code again, everything with a SIMD vector is currently one of the unsupported instructions, which is why I hadn't seen any issues. Fixed the tests and code so that is uses size of the vector. |
CI failures don't look connected. (This patch should have no effect on any existing tests) |
superpmi failures are unrelated and we are seeing it in other PRs as well. |
The next batch.
MOV
is an alias forCPY
. Due to the scripting there are two different opcodes even though they have the same encodings. I think that's fine. I changeCPY
to the preferredMOV
inemit_R_R_R()
For some of these I needed
INS_OPTS_SCALABLE_n_FROM_SIMD_(SCALAR/VECTOR)
. But, doing that increases insOpts to 7 bits, which breaks the hardcoded sizings in one of the structures. Instead, I repurposedINS_OPTS_SCALABLE_n_TO_SIMD_(SCALAR/VECTOR)
toINS_OPTS_SCALABLE_n_WITH_SIMD_(SCALAR/VECTOR)
. I don't think we ever need to distinguish between the two.Fixed two of the perf scores for other instructions.
The use of insOpts and emitAttr seems to have resolved into:
elements (1,2,4,8 bytes)register (8 bytes).EDIT: Fixed vector size above.