dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
15.08k stars 4.69k forks source link

Arm64 SVE: Use mask versions of instructions where possible. #103078

Open a74nh opened 4 months ago

a74nh commented 4 months ago

Some SVE instructions have both vector and mask versions.

TRN1 <Zd>.<T>, <Zn>.<T>, <Zm>.<T>
TRN1 <Pd>.<T>, <Pn>.<T>, <Pm>.<T>

Currently if we pass masks into Sve.TransposeOdd() then it will convert the masks to vectors and use the vector version. Instead, this should be detected and the mask version used instead.

TODO: Add a list of all the applicable instructions here

kunalspathak commented 4 months ago

@dotnet/arm64-contrib

dotnet-policy-service[bot] commented 4 months ago

Tagging subscribers to this area: @dotnet/area-system-runtime-intrinsics See info in area-owners.md if you want to be subscribed.