Open MadProbe opened 1 year ago
Tagging subscribers to this area: @dotnet/area-system-runtime-intrinsics See info in area-owners.md if you want to be subscribed.
Author: | MadProbe |
---|---|
Assignees: | - |
Labels: | `api-suggestion`, `area-System.Runtime.Intrinsics` |
Milestone: | - |
MultiShift
is part of https://github.com/dotnet/runtime/issues/86168
ConcatenateShift
hasn't gone through any review yet and I need to think more on the general name, etc. It's too late in the cycle for either to land for .NET 8, however. Both will end up being .NET 9 instead.
I have deleted the duplicated MultiShift
and changed the title and proposal description accordingly.
Need to give some consideration around the suggested names, but this will be a .NET 9 change regardless; so marking with needs-further-triage for the moment.
Note that AMD Zen 4 and better as well as Intel Ice Lake and better support VBMI2.
As motivation, this would make it possible support fast Unicode transcoding function in C#, like what is done in the simdutf library (which is part of the Node.js runtime).
See https://arxiv.org/pdf/2212.05098.pdf
cc @EgorBo
Background and motivation
There are approved and soon to be added AVX512-VBMI2 Compress & Expand intrinsics as part of new vector mask proposal. There is little reason if at all to not to add the left-over instructions from AVX512-VBMI2 instruction set. Notice:
lower << count
andupper >> count
, which produce the same result and the other operand is unused.API Proposal
API Usage
Alternative Designs
N/A
Risks
N/A