-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Open
Labels
area-Codegen-Intrinsics-monoruntime-monospecific to the Mono runtimespecific to the Mono runtimetrackingThis issue is tracking the completion of other related issues.This issue is tracking the completion of other related issues.
Milestone
Description
.NET 6
General implementation:
- System.Runtime.Intrinsics.Vector{128,64} Assigned to imhameed
- System.Runtime.Intrinsics.Arm.Sha256 Assigned to fanyang-mono
- System.Runtime.Intrinsics.Arm.Sha1 Assigned to fanyang-mono
- System.Runtime.Intrinsics.Arm.Rdm Assigned to imhameed
- System.Runtime.Intrinsics.Arm.Dp Assigned to imhameed
- System.Runtime.Intrinsics.Arm.Aes Assigned to fanyang-mono
- System.Runtime.Intrinsics.Arm.AdvSimd Assigned to naricc/imhameed
- MultiplyHigh
- 4-arg ops
- Tablegen automation
Bugs:
- [Mono] Vector256 bug #43676
- [mono] Don't crash when new unsupported intrinsic groups are added #53078
.NET 7
General implementation:
- [Mono] Intrinsify API's of System.Numerics.Vector and new API's of System.Runtime.Intrinsics.Vector{64, 128} on Arm64 #64072
- [Mono] Add SIMD support for System.Numerics.Vector4 on Arm64 #69186
- [Addressed input arguments with LLVM enabled] [mono] Pass Vector64, Vector128, and Vector256 in SIMD registers whenever possible #60068
- LoadPairVector
- See [Arm64] Implement LoadPairVector64 and LoadPairVector128 #52424 (comment)
- An implementation is available at 82bb175
Runtime test coverage:
Cleanup and refactoring:
.NET 8
- [mono] Add arm64/neon opcode macros to the codegen #80788
- [Mono] Intrinsify System.Numerics.Vector and System.Runtime.Intrinsics.Vector128 API's with mini JIT on Arm64 #80566
- [mono] Re-enable passing Vector128 arguments in SIMD registers #74583
- Intrinsify RuntimeHelpers.CreateSpan on Mono #80762
- [Mono] Intrinsify Vector128:ExtractMostSignificantBits on ARM64 and AMD64 #76025 - Will focus on Arm64 first. May not be able to get to the Amd64 one in .NET8
- [Mono] Intrinsify Quaternion and Plane with LLVM as backend #81483
- Add handling for SIMD constants in Mono #81482
- [Mono] Intrinsify Vector128 API's on Amd64 with mini JIT #86272
- [Mono] Intrinsify System.Numerics.Vector4 API's with mini JIT on Arm64 #86957
- [mono][jit] ArmBase methods are now intrinsic. #85458
- SIMD problems when mixing llvm and non-llvm code #73454
- Add VectorTableLookup/VectorTableLookupExtension support in mono #83891
.NET 9
- [Mono] Add SIMD support for System.Numerics.Vector2 on Arm64 #73462
- [Mono] Add missing SIMD support for some methods from System.Numerics.Vector2/3/4 and Quaternion on Arm64 #91394
- [Mono] AdvSimd.Arm64 [Load/Store]Vector64 and [Load/Store]Vector128 for 2,3 and 4 variants with LLVM #93081
- [Mono] [Arm64] Add SIMD support for vector constructors using other vectors #97815
- [mono] Intrinsify API's in SpanHelpers.ByteMemOps.cs #99161
- [mono] Intrinsify Unsafe API's #101495
.NET10
- [Mono] Intrinsify loading/storing, reordering, and extracting a per-element "mask" API's of Vector{64, 128, 256} #73261 - focus on Vector128 only.
Future:
- [Mono] Intrinsify API's of System.Numerics.Vector and new API's of System.Runtime.Intrinsics.{128,256} on Amd64 with LLVM backend #66392
- [Handle output argument with LLVM enabled and more] [mono] Pass Vector64, Vector128, and Vector256 in SIMD registers whenever possible #60068
- System.Runtime.Intrinsics.Vector256
- 512-bit vector support
- [mono] Tracking: Implement
System.Runtime.Intrinsics.X86.Avx
#60483 - [mono] Tracking: Implement
System.Runtime.Intrinsics.X86.Avx2
#60484 - [mono] Tracking: Implement
System.Runtime.Intrinsics.X86.AvxVnni
#60485 - Add
X86Serialize
API and intrinsic for mono. #68916 - [Mono] Intrinsify Vector2/3 #81501
- [Mono] Intrinsify Quaternion and Plane #88207
- [Mono] Issues to prevent SIMD registers from being enabled on Arm64 #87576
- [mono][jit] Add test for arm64/neon opcodes #81420
- [Mono] Intrinsify Vector64.ExtractMostSignificantBits on ARM64 #90402
- [mono] Reenable disabled x86 SIMD unit tests #91392
- [Mono] Implement small types atomic intrinsics for CompareExchange and Exchange #93488
- [Mono] [x64] Add SIMD support for System.Numerics.Vector #97988
- [mono] Implement * and / quaternion intrinsics #82408
Size optimization:
Cleanup and refactoring:
Metadata
Metadata
Assignees
Labels
area-Codegen-Intrinsics-monoruntime-monospecific to the Mono runtimespecific to the Mono runtimetrackingThis issue is tracking the completion of other related issues.This issue is tracking the completion of other related issues.