Implement various other simple vector APIs from 93513
This makes additional progress towards #93513
Note regarding the new-api-needs-documentation label:
This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, 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.
Note regarding the new-api-needs-documentation label:
This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, 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.
Tagging subscribers to this area: @dotnet/area-system-runtime-intrinsics See info in area-owners.md if you want to be subscribed.
CC. @stephentoub, @michaelgsharp for libraries side CC. @dotnet/jit-contrib for the JIT side CC. @fanyang-mono for the Mono side
Most of this change is in managed code with the Mono and JIT side changes being handling of the new core APIs. The Mono side additionally includes handling for the zero-cost conversion APIs that weren't already handled.
For the managed side changes this is implementation and use of the new APIs. For Max, Min, and friends there was also a simplification of the existing logic to require fewer overall checks and instructions to pick the right output.
@fanyang-mono, for when you do review there's some iOS/tvOS failures that look unique to this PR but where it isn't clear what could be causing it as they seem to be isolated to networking. Any help identifying if its actually an issue or not would be appreciated!
The failures I'm seeing are similar to:
[12:05:28] fail: Application test run crashed
TCP Tunnel Connection Failed to connect to TCP port
If I had to guess, this is probably related to AsVector128 or AsVector128Unsafe handling for Vector2/3, but the handling looks to be identical to what's being done elsewhere already, so it's not really clear.
Edit: Doesn't appear to be this actually, I modified the PR to just have the handling return NULL for these and still got the same failures. Not sure how to investigate that further.
Tests?
Ah, I thought I pushed them up, I might have them in a different branch. Will get those up here shortly.
-- Think I almost have the mono stuff working, it's not easy testing all the scenarios (JIT, LLVM, Interp) locally (especially for iOS/tvos), so relying a bit on CI here
Resolved merge conflicts.
This should be ready for review on both the Mono (CC. @steveisok, @fanyang-mono) and RyuJIT (CC. @dotnet/jit-contrib) side.
Resolved merge conflicts
SPMI replay failure is https://github.com/dotnet/runtime/issues/104585