[Arm64] Implement remaining SIMD instructions#38361
Merged
echesakov merged 32 commits intodotnet:masterfrom Jun 25, 2020
Merged
[Arm64] Implement remaining SIMD instructions#38361echesakov merged 32 commits intodotnet:masterfrom
echesakov merged 32 commits intodotnet:masterfrom
Conversation
* sqdmlal * sqdmlal2 * sqmmlsl * sqmmlsl2 * sqdmulh * sqdmull * sqdmull2 * sqdrmlah * sqdrmlsh * sqdrmulh
…emitarm64.cpp emitarm64.h
* sqxtn * sqxtn2 * sqxtun * sqxtun2 * uqxtn * uqxtn2
* sdot * udot
…fmtsarm64.h instrsarm64.h
* sqxtn * sqxtn2 * sqxtun * sqxtun2 * uqxtn * uqxtn2
* sqdmlal * sqdmlal2 * sqmmlsl * sqmmlsl2 * sqdmulh * sqdmull * sqdmull2 * sqdrmlah * sqdrmlsh * sqdrmulh
* sdot * udot
…asize in emitarm64.cpp emitarm64.h
Contributor
Author
|
@dotnet/jit-contrib PTAL |
BruceForstall
approved these changes
Jun 25, 2020
Contributor
BruceForstall
left a comment
There was a problem hiding this comment.
LGTM! It's nice you could clean up the asm issues and remove some encoding formats at the same time.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implement instructions that are needed for #36696 #37014 #37169:
sqdmlal
sqdmlal2
sqmmlsl
sqmmlsl2
sqdmulh
sqdmull
sqdmull2
sqdrmlah
sqdrmlsh
sqdrmulh
sqxtn
sqxtn2
sqxtun
sqxtun2
uqxtn
uqxtn2
sdot
udot
This also mostly addresses issues in #36846. For example, by introducing WID, NRW and LNG instruction flags. This also allowed to remove some of the instruction formats - DV_3H DV_3HI EN3K EN2R, since now there is a better way to distinguish between long, narrow and wide SIMD instructions.
There are still some other discrepancies between the JIT output and WinDbg u command - most of them are related to base instructions and will not be fixed in 5.0. I will push #36846 to the future milestone once this PR is merged.
Attached are jitDisasm and WinDbg u command outputs and result of comparing these two.
jitDisasm
WinDbg u
diff windbgu jitdump