-
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] Tracking: Implement System.Runtime.Intrinsics.Vector{512,128,256,64}
#42350
Comments
Tagging subscribers to this area: |
Some work towards completing this is done in: #47028 |
Contributes to dotnet/runtime#42350 This PR added support for the following API's: - As* - Create(*) - CreateScalar(*) - CreateScalarUnsafe(*)
Contributes to #42350 This change: - Conditionally marks Vector64<T> as a SIMD type. Vector64<T> is treated as a SIMD type on amd64 and arm64 only when the LLVM backend is in use. Vector128<T> continues to be supported with both LLVM and mini on amd64, as before; on arm64, it continues to only be supported with LLVM. - Checks vector widths for compatibility when bitcasting. - Slightly cleans up return value handling for SIMD value types--conversion from an aggregate to an LLVM vector-typed value now happens in one location. - Removes a 128-bit SIMD assumption in the lowering code for OP_SETRET. - Renames `emit_vector128` to `emit_sri_vector` and makes it width-agnostic. - Improves the generated IR for non-broadcasting Vector64/Vector128.Create; the resulting code works entirely in registers and does not depend on temporary stack storage for writing values into individual vector lanes. Co-authored-by: Imran Hameed <imhameed@microsoft.com>
The non-System.Numerics.Vector and non-256-bit-SIMD parts were finished in: #54924 |
were there some disabled tests and that should be enabled after #54924 work or is there no way to confirm in tests whether underlying runtime used software fallback or the real thing? |
Didn't have bandwidth to work on Vector256 in .NET7. Moving to milestone 8.0.0 |
Moving tracking issue to 9.0.0 |
vec 512 is missing from the list. would be nice to have #87037 fixed in 8.0 so software fallback work on mono |
System.Runtime.Intrinsics.Vector{128,256,64}
System.Runtime.Intrinsics.Vector{512,128,256,64}
Moving tracking issue to 10.0.0 |
.NET 6
System.Runtime.Intrinsics.Vector128
:System.Runtime.Intrinsics.Vector128<T>
:System.Runtime.Intrinsics.Vector64
:System.Runtime.Intrinsics.Vector64<T>
:Future
System.Runtime.Intrinsics.Vector256
:System.Runtime.Intrinsics.Vector256<T>
:System.Runtime.Intrinsics.Vector512
:System.Runtime.Intrinsics.Vector512<T>
:The text was updated successfully, but these errors were encountered: