Skip to content

ARM64-SVE: Detect mask usage for Across functions #101973

@a74nh

Description

@a74nh

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 #101770 for history.

Metadata

Metadata

Labels

Priority:2Work that is important, but not critical for the releasearea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIarm-sveWork related to arm64 SVE/SVE2 supportin-prThere is an active PR which will close this issue when it is merged

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions