-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Closed
Labels
Priority:3Work that is nice to haveWork that is nice to haveUser StoryA single user-facing feature. Can be grouped under an epic.A single user-facing feature. Can be grouped under an epic.arch-arm64area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone
Description
Overview
We achieved parity with x64 for Arm64 intrinsics support in .NET 5 for most of them except for multi-register intrinsics. We need more work to enable multi-register intrinsics for Arm64. The work is integral in that it involves changes in JIT, libraries and mono to enable working intrinsics.
Work Items
- Enable multi-register intrinsics in the JIT
- [Arm64] LoadPairVector64 and LoadPairVector128 #39243
- Couple optimization to MultiRegStoreLoc #64857
- (WIP) Remove condition that forbids promotion of HFAs with CUSTOMLAYOUT flag #64863
- Follow up and enable usage of
LoadPairVector64/128in the libraries (see comment) - (Intel) Bmi2.MultiplyNoFlags issues #11782 (in plan)
- Address Copy/paste error in GenTree::GetRegSpillFlagByIdx for xarch hwintrinsics #52473 (in plan)
- Support register allocation for intrinsics returning value in a sequence of registers (e.g.
V0-V2(note that this is different from theLoadPairVector64/128which returns result in two independent SIMD registers). [LSRA] Add support for allocating consecutive registers #39457. Implemented in Arm64: Implement VectorTableLookup/VectorTableLookupExtension intrinsinsic + Consecutive registers support #80297. - Propose and approve multi-register intrinsics
LoadVectorandStoreVectorAPIs on Arm64 ([API Proposal]: Arm64 [Load/Store]Vector64 and [Load/Store]Vector128 for 2,3 and 4 variants #84510) - (Q2'23) Implement multi-register intrinsics
LoadVectorandStoreVectorAPIs on Arm64 (such as ones that will exposeLD[1-4],ST[1-4]instructions) - Implement multi-register intrinsics on Arm64 (such as ones that will expose
TBL,TBXinstructions)
Follow-up (after the JIT work is completed)
- Libraries support to use the new intrinsics
- monoVM support on the new intrinsics.
Benchmarks to use
- Microbenchmarks (for the libraries methods that will be intrinsified with the new intrinsics)
category:cq
theme:register-allocator
skill-level:expert
cost:medium
impact:medium
saucecontrol and ShreyasJejurkar
Metadata
Metadata
Assignees
Labels
Priority:3Work that is nice to haveWork that is nice to haveUser StoryA single user-facing feature. Can be grouped under an epic.A single user-facing feature. Can be grouped under an epic.arch-arm64area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Type
Projects
Status
Done