-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[Mono] [Arm64] Add SIMD support for vector ctors #98037
[Mono] [Arm64] Add SIMD support for vector ctors #98037
Conversation
Tagging subscribers to this area: @SamMonoRT, @fanyang-mono Issue DetailsShould fix #97815
|
/azp run runtime-extra-platforms |
Azure Pipelines successfully started running 1 pipeline(s). |
ins->inst_c0 = 2; | ||
MonoInst* vec_ins = args [1]; | ||
if (COMPILE_LLVM (cfg)) { | ||
vec_ins = emit_simd_ins (cfg, klass, OP_XWIDEN, args [1]->dreg, -1); |
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, good job!
I noticed that there are System.Numerics.Vectors
red on linux bionic arm64 but it looks infrastructure related. Possibly re-run of CI could make them green.
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.
Checked some jobs before and after changes to vector3. System.Numerics.Vectors
seems to be red on all of them, along with bunch of different tests on linux bionic arm64, I think it is not related.
Testcase:
The problems seems to be that the code emits a OP_INSERT_R4, but that expects sreg1 to be a simd vreg, but Vector3 right now is only marked as simd on arm64, not wasm, i.e. see |
Yes, we do not have simd intrinsics for Vector2 and Vector3 on WASM. I'll create a PR disabling ctors simd on WASM. |
Adding a:
to the Vector2/Vector3 cases should work around the problem. |
Should fix #97815