runtime icon indicating copy to clipboard operation
runtime copied to clipboard

ARM64-SVE: Detect mask usage for Across functions

Open a74nh opened this issue 1 year ago • 4 comments

ConditionalSelect is used to mask an API. For methods that reduce down to a scalar value (eg all the Across methods), this would be done via:

a = Sve.AddAcross(Sve.ConditionalSelect(mask, a, zero));

Currently this will produce an SEL instruction to select the correct entries. Then will feed this into an SADDV (or UADDV) that uses an all-true mask.

Instead, the SEL needs merging into the SADDV to produce a single SADDV instruction using the mask.

See https://github.com/dotnet/runtime/issues/101770 for history.

a74nh avatar May 07 '24 11:05 a74nh

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch See info in area-owners.md if you want to be subscribed.

https://github.com/dotnet/runtime/pull/104640 falls in similar category.

kunalspathak avatar Jul 13 '24 14:07 kunalspathak

priority:3 for RC1 snap : Performance issue. Produces code that is not ideal, but will not break anything.

a74nh avatar Jul 30 '24 11:07 a74nh

Given the backporting that would be required, I think it's too risky for NET9

a74nh avatar Aug 22 '24 17:08 a74nh