-
Notifications
You must be signed in to change notification settings - Fork 5.3k
[Arm64] Implement Store Hardware Intrinsic #33535
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
Conversation
|
Note regarding the This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, to please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change. |
…d.cs AdvSimd.PlatformNotSupported.cs
… base type in hwintrinsic.cpp
...braries/System.Runtime.Intrinsics.Experimental/ref/System.Runtime.Intrinsics.Experimental.cs
Show resolved
Hide resolved
…argument base type in hwintrinsic.cpp" Also update Compiler::getBaseTypeFromArgIfNeeded and annotate Store* methods in hwintrinsiclistxarch.h with HW_Flag_BaseTypeFromSecondArg
|
Any other feedback here? |
So for the single element versions of e.g. will generate a For big-endian we do generate the |
Thank you for your feedback @TamarChristinaArm I am leaning towards keeping |
CarolEidt
left a comment
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 - nice to see so much of it being table-driven. Most of my time reviewing was reading the manual!
No there isn't a performance difference in instructions themselves, so that's fine for now. |
Interestingly, Visual C++ 2019 compiles the following functions __declspec(noinline)
void foo(int32x4_t v, int32_t* a)
{
return vst1q_s32(a, v);
}
__declspec(noinline)
void bar(int32x2_t v, int32_t* a)
{
return vst1_s32(a, v);
}into ?foo@@YAXT__n128@@PEAH@Z:
0000000140001158: 4C007800 st1 {v0.4s},[x0]
000000014000115C: D65F03C0 ret
?bar@@YAXT__n64@@PEAH@Z:
0000000140001160: 0C007800 st1 {v0.2s},[x0]
0000000140001164: D65F03C0 ret |
hmm yeah I only checked |
Implements Store Arm64 hardware intrinsic
Fixes #24771
Also addresses Brian's feedback and partly Bruce's feedback received on #33461
I decided to have a separate PR for @BruceForstall suggestions concerning finding a proper names for
emitDispVectorElemListand other functions.