Add Arm64 encodings for SVE IF_SVE_CX_4A_A to IF_SVE_HT_4A group#96214
Add Arm64 encodings for SVE IF_SVE_CX_4A_A to IF_SVE_HT_4A group#96214kunalspathak merged 9 commits intodotnet:mainfrom
Conversation
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsThis group emits various compare instructions. This clr output matches the one from capstone. Contribute towards #94549.
|
a74nh
left a comment
There was a problem hiding this comment.
Otherwise, LGTM.
Also, @kunalspathak
a74nh
left a comment
There was a problem hiding this comment.
LGTM except for the one comment.
| emitDispPredicateReg(id->idReg2(), PREDICATE_ZERO, id->idInsOpt(), true); // ggg | ||
| emitDispSveReg(id->idReg3(), id->idInsOpt(), true); // mmmmm | ||
| emitDispSveReg(id->idReg4(), id->idInsOpt(), false); // nnnnn | ||
| emitDispSveReg(id->idReg4(), INS_OPTS_SCALABLE_D, false); // nnnnn |
There was a problem hiding this comment.
While passing INS_OPTS_SCALABLE_D looks fine for this instruction format, I was checking other formats where we directly pass the INS_OPTS and seems like for IF_SVE_EQ_3A, we should have a method that is reverse of optWidenSveElemsizeArrangement(), which will basically lower H->B, S->H and D->S instead of manipulating the idOpts() this way.
runtime/src/coreclr/jit/emitarm64.cpp
Lines 18752 to 18755 in b498582
There was a problem hiding this comment.
Sure, makes sense. I will piggyback this change on my next patch 👍
|
failures seems to known |
…net#96214) * Add SVE IF_SVE_CQ_4A_A group * Fix format issues * Add Arm64 encodings for IF_SVE_GE_4A group * Fix build issue * Add Arm64 encodings for case IF_SVE_HT_4A group * Fix build and formatting * Remove redundant asserts
This group emits various compare instructions.
This clr output matches the one from capstone.
Contribute towards #94549.