Skip to content

ARM64-SVE: No obvious way to mask an Across function #101770

Closed
@a74nh

Description

@a74nh

ConditionalSelect is used to mask an API, for example:

a = Sve.ConditionalSelect(mask, Sve.Add(a,b), a);

Is equivalent to:

ADD zA, zMask/M, zA, zB

This does not work when using the across methods.

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

Is saying to add together all the elements in a and place in field 0, zeroing all other elements. Then use mask to select which elements to pick from the result. That is valid C#, but is a weird thing to do.

the more likely use case is to take all the elements in a that are marked as active in mask and add them together, putting them in field 0, zeroing all other elements. There is no obvious way to do this?

Metadata

Metadata

Assignees

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIarm-sveWork related to arm64 SVE/SVE2 support

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions