-
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
Adding more SIMD constant folding support #82190
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak Issue DetailsThis adds support for other primtive unary and binary operations but does not cover relational operators yet.
|
2a0fcd2
to
29117c7
Compare
29117c7
to
2171541
Compare
9af1199
to
e80c008
Compare
spmi-replay failures are #82397 |
/azp run runtime-coreclr jitstress-isas-x86, runtime-coreclr jitstress-isas-arm, runtime-coreclr outerloop, runtime-coreclr jitstress, runtime-coreclr libraries-jitstress, Fuzzlyn |
Azure Pipelines successfully started running 6 pipeline(s). |
CC. @dotnet/jit-contrib More SIMD constant folding support, covering the other basic binary operators (but not comparisons). All of these have equivalent scalar handling. |
src/coreclr/jit/simd.h
Outdated
uint32_t arg0Bits = *reinterpret_cast<uint32_t*>(&arg0); | ||
uint32_t arg1Bits = *reinterpret_cast<uint32_t*>(&arg1); |
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.
This is technically UB -- can we use memcpy
to be safe?
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.
Will update the new occurrences in this PR.
Notably we're doing this in many places throughout the JIT, so its a more general thing that should be fixed (separately, if it's a concern).
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!
This adds support for other primitive unary and binary operations but does not cover relational operators yet.
Tests still need to be added as well.